2013-04-30 45 views
1

我正在編寫一個腳本來終止由其命令行調用標識的進程。它工作正常,如果我硬編碼,如:Powershell中的轉義參數[0]

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

首先不要使用'$ args'。使用命名參數。 – alroc 2013-04-30 15:17:33

回答

3

我想這會做到這一點:

Get-WmiObject Win32_Process -Filter "CommandLine LIKE '%$($args[0])%'" | Invoke-WmiMethod -Name Terminate 
1

我在得到了同樣的問題for循環和%$($args[0])%不會爲我工作。我做了這樣的事情:

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

它在這裏工作得很好。