找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 87202|回复: 22

[文件操作] 批处理怎样获取运行中的进程的路径?

[复制链接]
发表于 2008-10-5 21:21:23 | 显示全部楼层 |阅读模式
如题所示,

已经进程的映像名,如何提取此进程的路径?

运行环境XP系统CMD。
发表于 2008-10-5 21:25:58 | 显示全部楼层
  1. wmic process where name="qq.exe" get executablepath /value
复制代码
 楼主| 发表于 2008-10-5 21:28:21 | 显示全部楼层
我在google上怎么也找不到,谢谢!
 楼主| 发表于 2008-10-5 22:39:31 | 显示全部楼层
不好意思,还有一个问题,

虽然路径找到了,但我只想要从盘符到可执行文件的上一级文件夹,并赋值到变量Var里,该怎么写?
发表于 2008-10-6 01:53:45 | 显示全部楼层
利用for提取
  1. @echo off
  2. for /f "skip=1 delims=" %%a in ('wmic process where "name='qq.exe'" get ExecutablePath') do set "var=%%~dpa"
  3. set "var=%var:~,-1%"
  4. echo %var%
  5. echo.&pause
复制代码
 楼主| 发表于 2008-10-6 12:17:47 | 显示全部楼层
没有简单点的代码吗?

还是要谢谢!
 楼主| 发表于 2008-10-6 19:59:14 | 显示全部楼层

回复 5楼 的帖子

不成功啊,%var%中得到的是这段代码所在的批处理的路径,怎么回事啊?急!
发表于 2008-10-6 20:08:47 | 显示全部楼层

回复 7楼 的帖子

仔细看好了:
  1. C:\Documents and Settings\Administrator\??>type aa.bat
  2. @echo off
  3. for /f "skip=1 delims=" %%a in ('wmic process where "name='qq.exe'" get ExecutablePa
  4. h') do set "var=%%~dpa"
  5. set "var=%var:~,-1%"
  6. echo %var%
  7. echo.&pause
  8. C:\Documents and Settings\Administrator\??>aa.bat
  9. D:\Program Files\Tencent\QQ


  10. Press any key to continue . . .
复制代码

[ 本帖最后由 pusofalse 于 2008-10-6 20:10 编辑 ]
发表于 2008-10-6 20:09:28 | 显示全部楼层

回复 5楼 的帖子

运行得
'wmic' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
发表于 2008-10-6 20:35:38 | 显示全部楼层

回复 9楼 的帖子

你用的哪个版本的系统?
发表于 2008-10-6 20:37:07 | 显示全部楼层

回复 9楼 的帖子

Q: 为什么不行啊?
A: 去电线杆上找个老军医的手机,他是专治+包治这个的。如果治疗周期较长,建议列出你的测试环境、测试用例、出错信息,供大家帮助你解决问题。
 楼主| 发表于 2008-10-6 20:45:40 | 显示全部楼层
我刚看到回帖时,测试过,没问题,但那时是在XP sp2测试的,
现在Vista下,测试不通过
我在命令行下的测试发上来,大家看看:



  1. C:\>for /f "skip=1 delims=" %a in ('wmic process where "name='qq.exe'" get Execu
  2. tablePath') do set "var=%~dpa"
  3. C:\>set "var=D:\Program Files\OICQ\QQ"
  4. C:\>set "var=D:\Program Files\OICQ\QQ"
  5. C:\>set "var=D:\Program Files\OICQ\QQ"
  6. C:\>set "var=C:"
  7. C:\>

复制代码


我开了三个QQ,所以会有三个路径,但不知道为什么倒数第二行会出现“set "var=C:\" ”,这个变成了最终的Var值,但这并不是我想要的,
还有,要是和系统有关系,我要在XP和Vista下都可以用的。
发表于 2008-10-6 20:56:32 | 显示全部楼层
单独运行一句,把结果贴出来看看
wmic process where "name='qq.exe'" get ExecutablePath
 楼主| 发表于 2008-10-6 21:04:38 | 显示全部楼层

回复 13楼 的帖子

D:\Program Files\OICQ\QQ\QQ.exe
D:\Program Files\OICQ\QQ\QQ.exe
D:\Program Files\OICQ\QQ\QQ.exe
发表于 2008-10-6 21:31:25 | 显示全部楼层
应该没问题啊
在wmic前面加上@再试试
for /f "skip=1 delims=" %a in ('@wmic process where "name='qq.exe'" get ExecutablePath') do echo %a
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 17:55 , Processed in 0.025090 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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