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

[系统相关] 批处理如何获取进程的映像路径?

[复制链接]
发表于 2010-9-28 13:57:20 | 显示全部楼层 |阅读模式
如图,则显示
  1. c:\wing\a.bat
复制代码
发表于 2010-9-28 17:51:56 | 显示全部楼层
用WMIC:
  1. @echo off&setlocal enabledelayedexpansion
  2. ::获取单个名称进程的PID
  3. for /f "usebackq skip=1 delims=" %%p in (`"wmic process where(name="QQ.exe") get ProcessId"`) do echo %%p
  4. ::获取单个名称进程的路径
  5. for /f "usebackq skip=1 delims=" %%p in (`"wmic process where(name="QQ.exe") get executablepath"`) do echo %%p
  6. ::查找单个名称进程的PID
  7. for /f "tokens=*" %%i in ('tasklist') do echo %%i |findstr /i "cmd"
  8. pause
复制代码
 楼主| 发表于 2010-9-28 17:55:49 | 显示全部楼层
2楼没有明白我的意思,如1楼的图,并非要获取C:\WINDOWS\system32\cmd.exe,而是要获取c:\wing\a.bat
发表于 2010-9-28 18:04:39 | 显示全部楼层

回复 3楼 的帖子

说实在的,我都不怎么懂映像路径和命令行的实际作用,不过通过以下提取你或许会有答案:
  1. wmic process where(name="cmd.exe")
复制代码
前提是你先随机运行一个批处理作品,如:E:\Batch\获取桌面快捷方式的路径.bat
然后你通过上面查找映像路径,通过FOR或者FINDSTR提取……
我是对比任务管理器来理解的。

评分

参与人数 1技术 +1 收起 理由
Wingl83 + 1 乐于助人

查看全部评分

发表于 2010-9-28 18:08:36 | 显示全部楼层
不懂“映像路径”的英文,你自己找吧,吃饭去了:
wmic process get  /?
========
CSName
CommandLine
Description
ExecutablePath
ExecutionState
Handle
HandleCount
InstallDate
KernelModeTime
MaximumWorkingSetSize
MinimumWorkingSetSize
Name
OSName
OtherOperationCount
OtherTransferCount
PageFaults
PageFileUsage
ParentProcessId
PeakPageFileUsage
PeakVirtualSize
PeakWorkingSetSize
Priority
PrivatePageCount
ProcessId
QuotaNonPagedPoolUsage
QuotaPagedPoolUsage
QuotaPeakNonPagedPoolUsage
QuotaPeakPagedPoolUsage
ReadOperationCount
ReadTransferCount
SessionId
Status
TerminationDate
ThreadCount
UserModeTime
VirtualSize
WindowsVersion
WorkingSetSize
WriteOperationCount
WriteTransferCount

评分

参与人数 1技术 +1 收起 理由
Wingl83 + 1 乐于助人

查看全部评分

发表于 2010-9-28 18:30:33 | 显示全部楼层
那是获取命令行参数

wmic process get commandLine
发表于 2012-2-7 15:32:50 | 显示全部楼层
土办法,等人完善
  1. @echo off
  2. set file=c:\wing\a.bat
  3. wmic process get commandLine,processid >t.txt
  4. for /f "delims=" %%a in ('type t.txt^|find /i "%file%"') do set pth=%%a
  5. set pth2=%pth:""=[%
  6. for /f "tokens=2 delims=[]" %%i in ('echo "%pth2:" "=]%"') do set pth=%%i
  7. echo.%pth%
  8. del /f/q t.txt
  9. echo.&pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 04:13 , Processed in 0.019130 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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