我想基于进程命令行获取进程ID。$saucelab = gwmi Win32_Process -Filter "name = 'java.exe'" | select CommandLine, ProcessID
现在可能有许多名称为“java”的进程,但我想查找包含我的字符串的特定进程的进程。$pid = $saucelab | Where-Object {$_.CommandLine -contains "-port 4444"} | select ProcessID
这行不通
有什么方法可以根据过程processID
匹配来获取commandLine
最佳答案
-contains是一个数组运算符。命令行将是一个字符串。尝试改用-match:
$pid = $saucelab | Where-Object {$_.CommandLine -match "-port 4444"} |
select -ExpandProperty ProcessID
看到:
Get-Help about_comparison_operators
编辑:选择一个属性时,将获得一个具有一个属性的对象。如果只需要属性值,请使用-ExpandProperty参数。