我正在编写一个脚本来终止由它的Commandline调用标识的进程。如果我像硬编码那样工作正常:
Get-WmiObject Win32_Process -Filter "CommandLine LIKE '%worker04%'" | Invoke-WmiMethod -Name Terminate
现在我想使用这样的参数:
Get-WmiObject Win32_Process -Filter "CommandLine LIKE '%$args[0]%'" | Invoke-WmiMethod -Name Terminate
所以我可以这样调用我的脚本:
.\killprocess worker04
到目前为止它什么也没做。如何正确地将$args[0]
放入-Filter
区块?
答案 0 :(得分:3)
我认为这样做会:
Get-WmiObject Win32_Process -Filter "CommandLine LIKE '%$($args[0])%'" | Invoke-WmiMethod -Name Terminate
答案 1 :(得分:1)
我在for循环中遇到了同样的问题,%$($args[0])%
对我不起作用。我用这样的东西做到了:
for($i; $i -lt $args.length ;$i++)
{
$arg=$args[$i]
Get-WmiObject Win32_Process -Filter "CommandLine LIKE '$arg'......
}
这里工作正常。