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 に答える