001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 | #メモ帳が終了するのを待つ notepad | Out-Null "メモ帳が終了しました" Start-Process notepad -Wait -WindowStyle Maximized "最大化で開いたメモ帳が終了しました" #特定のメモ帳が終了するのを待つ $memo = Start-Process notepad -PassThru Wait-Process -Id ($memo.id) "id=$($memo.id)のメモ帳が終了しました" #全てのメモ帳が終了するのを待つ notepad notepad Wait-Process -Name notepad | Out-Null "全てのメモ帳が終了しました" #メモ帳が終わるのを非同期に待つ $obj = Start-Process notepad -PassThru Register-ObjectEvent $obj -EventName Exited -SourceIdentifier memo -Action{ Write-host "メモ帳の終了イベントが発生しました" Unregister-Event -SourceIdentifier memo } "スクリプトが終了しました" |
notepad を Out-Nullにパイプしてあげるとその終了を待ってくれる。
notepad を開いた後になにか処理をしたい場合などはそれでは不都合なのでWait-Processコマンドレットでプロセスを特定して待つ。
Start-ProcessコマンドレットにもWaitスイッチがあるので、それで待っても良い。
すべてのnotepadが終了するのを待つにはnotepadという名前を指定して待てば良い。
非同期に終了を待つにはProcessのExitedイベントを拾えば良い。
0 件のコメント:
コメントを投稿