Oz *_*aim 58 windows command-line operating-system cmd batch-file
假设我知道进程ID.我想使用Windows批处理脚本通过其ID找到进程名称.我怎样才能做到这一点?
MC *_* ND 78
基本的,请求任务列表过滤其输出并仅显示指示的进程ID信息
tasklist /fi "pid eq 4444"
Run Code Online (Sandbox Code Playgroud)
要仅获取进程名称,必须拆分该行
for /f "delims=," %%a in ('
tasklist /fi "pid eq 4444" /nh /fo:csv
') do echo %%~a
Run Code Online (Sandbox Code Playgroud)
在这种情况下,将/nh在csv format(/fo:csv)中检索没有headers()的进程列表.逗号用作标记分隔符,行中的第一个标记是图像名称
注意:在某些Windows版本(其中一个,我的情况,是西班牙语windows xp版本)中,任务列表中的pid过滤器不起作用.在这种情况下,必须在命令之外完成进程列表上的过滤器
for /f "delims=," %%a in ('
tasklist /fo:csv /nh ^| findstr /b /r /c:"[^,]*,\"4444\","
') do echo %%~a
Run Code Online (Sandbox Code Playgroud)
这将生成任务列表并过滤它,在csv输出的第二列中搜索进程ID.
编辑:或者,您可以假设团队将操作系统翻译成西班牙语.我不知道其他语言环境会发生什么.
tasklist /fi "idp eq 4444"
Run Code Online (Sandbox Code Playgroud)
仅使用“本机” Windows实用程序,请尝试以下操作,其中“ 516”是您想要映像名称的进程ID:
for /f "delims=," %a in ( 'tasklist /fi "PID eq 516" /nh /fo:csv' ) do ( echo %~a )
for /f %a in ( 'tasklist /fi "PID eq 516" ^| findstr "516"' ) do ( echo %a )
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用wmic(Windows管理规范命令行工具)并获取可执行文件的完整路径:
wmic process where processId=516 get name
wmic process where processId=516 get ExecutablePath
Run Code Online (Sandbox Code Playgroud)
或者,您可以下载Microsoft PsTools,或者专门下载pslist实用程序,然后使用PsList:
for /f %a in ( 'pslist 516 ^| findstr "516"' ) do ( echo %a )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99018 次 |
| 最近记录: |