无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5395|回复: 13
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2018-5-24 14:22:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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个一行
或者有没有什么命令可以查看所需文件并复制出来
推荐
发表于 2018-5-24 20:27:45 | 只看该作者
  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结果\ ”为存放文件目录

点评

我考虑的是 tasklist 这个命令本身功能就不完备, 1、列表出的这些文件 路径 不知道 2、如果文件名带空格或者逗号 怎么办  详情 回复 发表于 2018-5-25 09:52
貌似找到问题了,只找到29个文件,总共29行只找了每行第一个文件 有了dos时代菜鸟给的方法再加上你的方法,二合一就可以了  详情 回复 发表于 2018-5-25 09:38
在winre下 文件拷贝成功却没有列出未找到的文件列表  详情 回复 发表于 2018-5-25 09:35
我试了一下,列出来未找到的文件列表了,可是找到的却没有复制到指定目录  详情 回复 发表于 2018-5-25 08:53
昨天测试了一下 好像还不是很完善  发表于 2018-5-25 08:03
回复

使用道具 举报

推荐
发表于 2018-5-25 08:31:15 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-5-25 09:21 编辑

tasklist /m /fo list /fi "imagename eq explorer.exe"
回复

使用道具 举报

2#
发表于 2018-5-24 15:11:07 | 只看该作者
本帖最后由 lxwaft 于 2018-5-24 15:16 编辑

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

没看清楼主的问题,我的回答应该不对
回复

使用道具 举报

4#
发表于 2018-5-25 08:25:38 | 只看该作者
用 两个 for 就可以,
回复

使用道具 举报

6#
 楼主| 发表于 2018-5-25 08:53:40 | 只看该作者
本帖最后由 xuexiang 于 2018-5-25 09:53 编辑
holley2008 发表于 2018-5-24 20:27
其中
“C:\Windows”为系统目录
“1.txt”为1.exe列出的文件列表


我试了一下,列出来未找到的文件列表了,可是找到的却没有复制到指定目录
原来是少了个【\】 瞧我这粗心

点评

tasklist /m /nh /fo list /fi "imagename eq 1.exe"  详情 回复 发表于 2018-5-25 09:19
回复

使用道具 举报

7#
发表于 2018-5-25 09:19:54 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-5-25 09:21 编辑
xuexiang 发表于 2018-5-25 08:53
我试了一下,列出来未找到的文件列表了,可是找到的却没有复制到指定目录


用这个

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

直接列出

你用 tasklist /?  就知道了。

点评

我是菜鸟,在网上找的 tasklist /m 没想到还可以这样tasklist /m /fo list /fi "imagename eq 1.exe 这个太好用了  详情 回复 发表于 2018-5-25 09:34
回复

使用道具 举报

8#
 楼主| 发表于 2018-5-25 09:34:47 | 只看该作者
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  这个太好用了
回复

使用道具 举报

9#
发表于 2018-5-25 09:35:18 | 只看该作者
考虑到 可能有运行多个 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. )
复制代码

点评

主要是要复制出指定程序所用到的dll文件,不用考虑1.exe 我去试试  详情 回复 发表于 2018-5-25 09:43
回复

使用道具 举报

10#
 楼主| 发表于 2018-5-25 09:35:43 | 只看该作者
holley2008 发表于 2018-5-24 20:27
其中
“C:\Windows”为系统目录
“1.txt”为1.exe列出的文件列表

在winre下  文件拷贝成功却没有列出未找到的文件列表
回复

使用道具 举报

11#
 楼主| 发表于 2018-5-25 09:38:21 | 只看该作者
holley2008 发表于 2018-5-24 20:27
其中
“C:\Windows”为系统目录
“1.txt”为1.exe列出的文件列表

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

使用道具 举报

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


主要是要复制出指定程序所用到的dll文件,不用考虑1.exe
非常好,谢谢各位高手
回复

使用道具 举报

13#
发表于 2018-5-25 09:52:23 | 只看该作者
holley2008 发表于 2018-5-24 20:27
其中
“C:\Windows”为系统目录
“1.txt”为1.exe列出的文件列表

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-20 09:10

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表