Board logo

标题: [文件操作] [已解决]批处理如何找到指定进程对应的exe程序路径? [打印本页]

作者: zhangwencheng    时间: 2009-6-18 12:21     标题: [已解决]批处理如何找到指定进程对应的exe程序路径?

本帖最后由 pcl_test 于 2017-4-30 22:02 编辑

昨天我的电脑中毒了,进程里有三个explorer.exe,我知道c:\windows下的explorer.exe是正常的,如果结束该进程就什么都干不了。
但关键是三人explorer.exe 如何得到 explorer.exe路径,删除伪explorer.exe ?

得到文件路径我已经想了很久了,并非一时兴起来发贴。还请达人指导……

[ 本帖最后由 zhangwencheng 于 2009-6-23 16:58 编辑 ]
作者: Batcher    时间: 2009-6-18 12:36

  1. wmic process where name="explorer.exe" get executablepath /value
复制代码

作者: zhangwencheng    时间: 2009-6-21 18:02

C:\>wmic process where name="explorer.exe" get executalbepath /value
节点 - WWW-F82493CB783
错误:
代码 = 0x80041017
说明 = 无效查询
设备 = WMI
作者: zhangwencheng    时间: 2009-6-21 18:02

为什么呢? 好像不行呀……
作者: zhouyongjun    时间: 2009-6-21 19:35

楼主对着写也写错,也真够粗心的。。。
作者: yslyxqysl    时间: 2009-6-21 20:05

executablepath
executalbepath
作者: Batcher    时间: 2009-6-22 09:55     标题: 回复 4楼 的帖子

对于使用了code标签的帖子,如果想复制其代码,只需点击帖子右侧的“复制内容到剪贴板”即可。
体验一下这个功能吧^_^
作者: zhangwencheng    时间: 2009-6-22 12:55

哎呀! 真粗心,抄错了,真的不好意思!!!

还有一事不明,还请各位指教:
就是查看进程的路径知道了,那怎么查看文件的路径?

例如在C盘下:dir /a |find "boot.ini" ,这样会找到boot.ini文件,但看不到boot.ini文件的路径。
如何查看文件的路径呢?

[ 本帖最后由 zhangwencheng 于 2009-6-22 13:00 编辑 ]
作者: Batcher    时间: 2009-6-22 12:58     标题: 回复 8楼 的帖子

给dir命令加个/s开关试试
作者: zhangwencheng    时间: 2009-6-22 13:04

C:\>dir /s |find "boot.ini"
2009-06-21  07:45               233 boot.ini
2008-12-24  14:11               231 boot.ini.backup
这样吗?
还是显示不了路径……
……
作者: keen    时间: 2009-6-22 13:50     标题: 回复 10楼 的帖子

试试这样:
  1. for /f "delims=" %%i in ('dir /a /s /b^|find /i "boot.ini"') do @echo %%~fi
复制代码

作者: Batcher    时间: 2009-6-22 16:22     标题: 回复 10楼 的帖子

  1. dir /s /b /a|find "boot.ini"
复制代码

作者: zhangwencheng    时间: 2009-6-22 23:11

呵呵,真高兴,你们真好。11楼和12楼的代码都可行!

12楼的贴子效率更高……
作者: keen    时间: 2009-6-23 12:56     标题: 回复 13楼 的帖子

问题得到解决后,请主动给标题前面添加【已解决】字样,谢谢!
作者: zhangwencheng    时间: 2009-6-23 14:48

等一下吧,再问一个。就是:
for /f "delims=" %%i in ('dir /a /s /b^|find /i "boot.ini"') do @echo %%~fi
~fi是扩展到路径。
但(dir /a /s /b ^ |find /i "boot.ini") 为什么要加转义符?
还有for /f "delims=" 是什么意思。能不能讲一讲它的用法?
作者: Batcher    时间: 2009-6-23 15:26     标题: 回复 15楼 的帖子

for语句中的管道符为何要用尖号^进行转义?
http://bbs.bathome.net/viewthread.php?tid=1290&page=2#pid6306

批处理for语句中tokens=*和delims=的区别是什么?
http://bbs.bathome.net/viewthread.php?tid=1654#pid8870

建议发帖求助之前先体验一下论坛的搜索功能吧^_^

Q: 如何使用论坛搜索功能来解决自己的问题?
A: 参考《批处理之家论坛使用常见问题FAQ》:http://bbs.bathome.net/thread-3473-1-1.html
作者: keen    时间: 2009-6-23 15:31     标题: 回复 15楼 的帖子

加转义字符是因为CMD有个预读机制,在执行每个语句之前都会先把整个一行读入,查看是否符合它的语法规范。而在这里加转义符^,是为了在预读时,把管道符|转义为普通字符。否则会直接作为管道符执行,结果就错误。

“delims=”这个意思是用什么作为分隔符,这里这样的写法就是不用任何符号作为分隔符。而默认是空格为分割符,这样写,可以去掉默认的空格作为分割符。
作者: zhangwencheng    时间: 2009-6-23 16:57

呵呵!谢谢,已结……




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2