1

我正在编写一个脚本来终止由它的命令行调用标识的进程。如果我像这样硬编码它,它工作正常:

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

4

2 回答 2

3

我认为这会做到:

Get-WmiObject Win32_Process -Filter "CommandLine LIKE '%$($args[0])%'" | Invoke-WmiMethod -Name Terminate
于 2013-04-30T14:26:39.973 回答
1

我在 for 循环中遇到了同样的问题,%$($args[0])%对我不起作用。我用这样的东西做到了:

for($i; $i -lt $args.length ;$i++)
{
$arg=$args[$i]
Get-WmiObject Win32_Process -Filter "CommandLine LIKE '$arg'...... 
}

它在这里工作正常。

于 2015-11-20T15:54:21.383 回答