「set-variable」の使い方
パイプでコマンドを繋いだときに「set-variable」は便利です。
特定条件のオブジェクトを変数に設定する
MSH> get-process w* | set-variable W_Processes
- 「get-process」コマンドでWで始まるプロセスを取得し、W_Processes変数に設定します。
MSH> $W_Processes Name Value ---- ----- W_Processes {winlogon, wscntfy}
- 「W_Processes」変数にはWで始まるプロセスが配列として設定されています。
コマンドの戻り値の調べ方
ちなみに、「get-process」コマンドの戻り値の型は「System.Diagnostics.Process」です。
MSH> get-process -? (中略) RETURN TYPE System.Diagnostics.Process no description (続く)
オブジェクト配列を順に処理する
オブジェクト配列を処理するには、foreachが便利です。
MSH> foreach ($W_Process in $W_Processes) { $W_Process.MainModule } Size ModuleName FileName ---- ---------- -------- 500 winlogon.exe \??\C:\WINDOWS\system32\winlogon.exe 24 wscntfy.exe C:\WINDOWS\system32\wscntfy.exe
- ここでは「$W_Processes」の要素変数(System.Diagnostics.Process)を「$W_Process」に取得し、MainModuleプロパティを表示しています。