WMIC ProcessID 批处理

WMIC ProcessID Batch

我在批处理中使用 WMIC 来获取进程 ID。 如何在 WMIC 命令中使用 CommandLine 参数。

我已经尝试过这样的事情了:

for /f "skip=1 tokens=*" %%i in ('wmic process where "name^="Example.exe" and CommandLine like '%Example%'" get ProcessId') do (echo attach %%i >> ".\my-script.txt")    

我只使用参数名称得到一个进程。但问题是我有三个同名的进程。

这样试试:

@echo off

for /f "usebackq tokens=* delims=" %%a in (`wmic process where "name='Example.exe' and CommandLine like '%%Example%%'" get ProcessID /Format:value`) do (
    for /f "tokens=* delims=" %%z in ("%%a") do set "%%z"
)
echo %processid%

您需要将 % 加倍,否则它将被 cmd.exe 解析为变量。