中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 08:51
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [已解决]如何获取进程路径?
可打印版本  1,269 / 13
第1楼 luckboy45 发表于 2008-04-19 17:57
中级用户 发帖 212 积分 487
[已解决]如何获取进程路径?
比如我要获得进程名为task.exe的路径,并用CD定位到该文件夹,然后用DIR列出该文件夹下的所有文件,P处理如何实现?

请帮忙完善以下代码,先谢谢了!~

for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
fsutil fsinfo drivetype !drive!|find "固定">nul && (
for /f "tokens=*" %%j in ('dir /a-d /b /s !drive!\task.exe 2^>nul') do if not "%%j"=="" goto scan0
)
)
goto :EOF
:scan0
echo task.exe它位于......
pause

[ Last edited by luckboy45 on 2008-4-27 at 04:39 PM ]
第2楼 luckboy45 发表于 2008-04-19 21:12
中级用户 发帖 212 积分 487
汗....难道没兄弟会帮我写出来么?貌似都不在...
第3楼 bat-zw 发表于 2008-04-19 21:31
金牌会员 发帖 1,276 积分 3,105
有一个思路:
提供一个思路吧:使用tasklist输出所有进程列表,但问题是我这里列表没有程序的路径啊,不知道兄弟那里有不?
第4楼 abcd 发表于 2008-04-19 21:44
银牌会员 发帖 739 积分 1,436
第5楼 luckboy45 发表于 2008-04-27 14:10
中级用户 发帖 212 积分 487
4楼兄弟,貌似你对WMIC比较在行,有好的资料推荐点或者给大家分享下啊!~

[ Last edited by luckboy45 on 2008-4-27 at 04:11 PM ]
第6楼 plp626 发表于 2008-04-27 14:33
银牌会员 发帖 1,020 积分 2,278
vbs我不会,但确实很实用,效率高。
我转个vbs的:
for each ps in getobject _
("winmgmts:\\.\root\cimv2:win32_process").instances_
wscript.echo ps.handle&vbtab&ps.name&vbtab&ps.executablepath:next
第7楼 huahua0919 发表于 2008-04-27 14:45
银牌会员 发帖 780 积分 1,608
看了下。VBS好用

这下全给你列出来,只是文件太多
只要把你的进程名字列在where name后面就行了

[ Last edited by huahua0919 on 2008-4-27 at 03:22 PM ]
第8楼 luckboy45 发表于 2008-04-27 15:47
中级用户 发帖 212 积分 487
很遗憾,楼上兄弟,代码提示...无效的过程调用或参数...行11,第1个字符.....
因为VBS的滥用,容易引起杀软报毒,所以还是希望能有高人写出BAT版...
毕竟,对于BAT我还懂一点,VBS完全搞不明白...汗....
第9楼 huahua0919 发表于 2008-04-27 16:05
银牌会员 发帖 780 积分 1,608
4楼的代码应该有用。
第10楼 luckboy45 发表于 2008-04-27 16:10
中级用户 发帖 212 积分 487
呵呵,多谢兄弟提醒,我试了另一个进程,成功了,4楼兄弟对WMIC很在行的说...呵呵,可是怎么才能实现用CD定位到该文件夹,然后用DIR列出该文件夹下的所有文件呢?

还有,路径列出后如何输出到文本文件?麻烦各位兄弟帮忙了!~
第11楼 huahua0919 发表于 2008-04-27 16:14
银牌会员 发帖 780 积分 1,608
把你定位到的路径中的“\”替换成“.”
然后取出%%~ni
就是你的文件所在文件夹
第12楼 luckboy45 发表于 2008-04-27 16:19
中级用户 发帖 212 积分 487
我是这样写的...
wmic process where name="tm.exe" get executablepath /value >>c:\12.txt
下面是输出到12.TXT里面的内容

ExecutablePath=C:\Program Files\Tencent\QQ\TMDlls\TM.exe


ExecutablePath=C:\Program Files\Tencent\QQ\TMDlls\TM.exe

问题是我要自动实现提取C:\Program Files\Tencent\QQ\TMDlls\下面的所有文件并输出文件列表到22.TXT,请帮忙写出来学习下!~
第13楼 huahua0919 发表于 2008-04-27 16:33
银牌会员 发帖 780 积分 1,608
第14楼 luckboy45 发表于 2008-04-27 16:38
中级用户 发帖 212 积分 487
谢谢兄弟了!~学习了点东西,感谢你的耐心指导,呵呵!~
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023