无忧启动论坛

标题: 求复制txt记事本里的文件列表3个和2个一排逗号分隔【已解决】 [打印本页]

作者: xuexiang    时间: 2018-5-24 14:22
标题: 求复制txt记事本里的文件列表3个和2个一排逗号分隔【已解决】
本帖最后由 xuexiang 于 2018-5-25 09:46 编辑

有啥办法吗   
例如
1.exe                       6824 ntdll.dll, KERNEL32.DLL, KERNELBASE.dll,   
                                   apphelp.dll, USER32.dll, win32u.dll,        
                                   GDI32.dll, gdi32full.dll, msvcp_win.dll,   
                                   ucrtbase.dll, VERSION.dll, SHELL32.dll,     
                                   msvcrt.dll, cfgmgr32.dll, shcore.dll,      
                                   RPCRT4.dll, combase.dll,                    
                                   bcryptPrimitives.dll, windows.storage.dll,  
                                   advapi32.dll, sechost.dll, shlwapi.dll,     
                                   kernel.appcore.dll, profapi.dll,            
                                   powrprof.dll, FLTLIB.DLL, ole32.dll,        
                                   OLEAUT32.dll, IMM32.dll, COMCTL32.dll,      
                                   MSIMG32.dll, UxTheme.dll, gdiplus.dll,      
                                   OLEACC.dll, WINMM.dll, WIMGAPI.DLL,         
                                   WINSPOOL.DRV, WINMMBASE.dll, oledlg.dll,   
                                   bcrypt.dll, PROPSYS.dll, IPHLPAPI.DLL,      
                                   CRYPTBASE.DLL, clbcatq.dll, msxml3.dll,     
                                   WININET.dll, iertutil.dll, urlmon.dll,      
                                   dwmapi.dll, MSCTF.dll, ieframe.dll,         
                                   NETAPI32.dll, WKSCLI.DLL, NETUTILS.DLL,     
                                   comctl32.dll, dataexchange.dll, d3d11.dll,  
                                   dcomp.dll, dxgi.dll, twinapi.appcore.dll,   
                                   RMCLIENT.dll, TextInputFramework.dll,      
                                   CoreUIComponents.dll, ntmarta.dll,         
                                   CoreMessaging.dll, wintypes.dll,            
                                   WindowsCodecs.dll, sxs.dll, msIso.dll,      
                                   SspiCli.dll, mshtml.dll, srpapi.dll,        
                                   CRYPT32.dll, MSASN1.dll, mlang.dll,         
                                   WLDP.DLL, WINTRUST.dll, ieapfltr.dll,      
                                   CRYPTSP.dll                                 

用命令tasklist /m 分析了exe程序运行所需的文件,出来的列表是3个或者2个一行
或者有没有什么命令可以查看所需文件并复制出来
作者: lxwaft    时间: 2018-5-24 15:11
本帖最后由 lxwaft 于 2018-5-24 15:16 编辑

把逗号替换成制表符,然后可以粘贴到excel里,对应列就分开了

没看清楼主的问题,我的回答应该不对
作者: holley2008    时间: 2018-5-24 20:27
  1. @echo off
  2. for /f "delims=," %%a in (1.txt) do (
  3.     for /f "delims=" %%i in ('dir /a-d /s /b "C:\Windows\%%a"^|^|echo;%%a^>^>2.txt') do copy /y "%%~fi" G:\00结果\
  4. )
复制代码

其中
“C:\Windows”为系统目录
“1.txt”为1.exe列出的文件列表
“2.txt”为系统目录未找到的文件列表
“G:\00结果\ ”为存放文件目录
作者: dos时代菜鸟    时间: 2018-5-25 08:25
用 两个 for 就可以,
作者: dos时代菜鸟    时间: 2018-5-25 08:31
本帖最后由 dos时代菜鸟 于 2018-5-25 09:21 编辑

tasklist /m /fo list /fi "imagename eq explorer.exe"
作者: xuexiang    时间: 2018-5-25 08:53
本帖最后由 xuexiang 于 2018-5-25 09:53 编辑
holley2008 发表于 2018-5-24 20:27
其中
“C:\Windows”为系统目录
“1.txt”为1.exe列出的文件列表


我试了一下,列出来未找到的文件列表了,可是找到的却没有复制到指定目录
原来是少了个【\】 瞧我这粗心
作者: dos时代菜鸟    时间: 2018-5-25 09:19
本帖最后由 dos时代菜鸟 于 2018-5-25 09:21 编辑
xuexiang 发表于 2018-5-25 08:53
我试了一下,列出来未找到的文件列表了,可是找到的却没有复制到指定目录


用这个

tasklist /m /fo list /fi "imagename eq 1.exe"

直接列出

你用 tasklist /?  就知道了。
作者: xuexiang    时间: 2018-5-25 09:34
dos时代菜鸟 发表于 2018-5-25 09:19
用这个

tasklist /m /fo list /fi "imagename eq 1.exe"

我是菜鸟,在网上找的  tasklist /m
没想到还可以这样tasklist /m /fo list /fi "imagename eq 1.exe  这个太好用了
作者: dos时代菜鸟    时间: 2018-5-25 09:35
考虑到 可能有运行多个 1.exe 所以用如下代码,另外考虑 文件名可能带  逗号 或者空格,所以用  /fo list

  1. @echo off
  2. set "name=1.exe"
  3. for /f "tokens=2 delims=," %%c in ('tasklist /nh /fo csv /fi "imagename eq %name%"') do (
  4.   FOR /f "skip=3 tokens=1,2 delims=:" %%h in ('tasklist /M /fo list /fi "PID EQ %%~c"') do (
  5.     if not "%%i"=="" ( echo %%i) else ( echo %%h)
  6.   )
  7.   pause
  8. )
复制代码

作者: xuexiang    时间: 2018-5-25 09:35
holley2008 发表于 2018-5-24 20:27
其中
“C:\Windows”为系统目录
“1.txt”为1.exe列出的文件列表

在winre下  文件拷贝成功却没有列出未找到的文件列表
作者: xuexiang    时间: 2018-5-25 09:38
holley2008 发表于 2018-5-24 20:27
其中
“C:\Windows”为系统目录
“1.txt”为1.exe列出的文件列表

貌似找到问题了,只找到29个文件,总共29行只找了每行第一个文件
有了dos时代菜鸟给的方法再加上你的方法,二合一就可以了

作者: xuexiang    时间: 2018-5-25 09:43
本帖最后由 xuexiang 于 2018-5-25 09:46 编辑
dos时代菜鸟 发表于 2018-5-25 09:35
考虑到 可能有运行多个 1.exe 所以用如下代码,另外考虑 文件名可能带  逗号 或者空格,所以用  /fo list
...


主要是要复制出指定程序所用到的dll文件,不用考虑1.exe
非常好,谢谢各位高手
作者: dos时代菜鸟    时间: 2018-5-25 09:52
holley2008 发表于 2018-5-24 20:27
其中
“C:\Windows”为系统目录
“1.txt”为1.exe列出的文件列表

我考虑的是 tasklist 这个命令本身功能就不完备,
1、列表出的这些文件 路径  不知道
2、如果文件名带空格或者逗号 怎么办





欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3