[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

如图,则显示
  1. c:\wing\a.bat
复制代码
我是小菜菜……

土办法,等人完善
  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
复制代码

TOP

那是获取命令行参数

wmic process get commandLine

TOP

不懂“映像路径”的英文,你自己找吧,吃饭去了:
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

评分人数

TOP

回复 3楼 的帖子

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

评分人数

TOP

2楼没有明白我的意思,如1楼的图,并非要获取C:\WINDOWS\system32\cmd.exe,而是要获取c:\wing\a.bat
我是小菜菜……

TOP

用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
复制代码

TOP

返回列表