【发布时间】:2020-11-05 06:39:26
【问题描述】:
我需要从下面的命令中获取pid,如果我在命令行中使用它,如下所示:
wmic process where "name="java.exe" and CommandLine like '%%cassandra%%'" get ProcessId | FINDSTR /v ProcessId | FINDSTR /r /v "^$"
但如果在 .bat 文件中使用会失败:
FOR /F "tokens=2" %%G IN ('wmic process where ^(name^="java.exe"^ and CommandLine like '%%cassandra%%') get ProcessId ^| FINDSTR /v ProcessId ^| FINDSTR /r /v "^$"') DO (
set PARENT_PID=%%G
)
echo !PARENT_PID!
有人可以帮忙吗?
【问题讨论】:
-
失败?失败了怎么办?你得到什么错误信息?
wmic行的原始输出为您显示了什么?对我来说,“进程名”和 PID 位于不同的行上。你知道WMIC输出是Unicode 吗? -
还应该注意的是,WMIC 已被弃用。看到这个帖子:stackoverflow.com/questions/57121875/…
-
这是 PowerShell 等效项:
get-ciminstance win32_process -Filter "name = 'notepad.exe' and commandline like '%system32%'" | %{$_.ProcessId}
标签: batch-file wmic