
powerShellから、他のプログラムを起動してみます。
できれば、powerShellで完結させたいんですけど、出来ないことも結構ありますからね。
■ 投捨て型
先頭に&(アンパサント)を付けてやります。
下記は、ttpmacro.exeをパラメータwork.ttlを渡して起動しています。
この方法の場合、単純に処理を実行するだけです。
powerShell側の処理は続行されます。
■ 終了まで待機する
後続の処理で、外部プログラムの実行結果を使用したい場合には、Start-Processコマンドレットを使用します。
-Waitパラメータを指定すると、処理終了まで待機します。
-ArgumentListでパラメータを指定することもできます。
やってることは同じで、ttpmacro.exeをパラメータwork.ttlを渡して起動しています。
-Waitパラメータによって、ttpmacro.exeが終了するまでpowerShellは待機します。
■ 待機中に別のことをしたい
「単純に待つのはいや。まってる間に別の処理をしたい」というなら-PassThruをパラメータを使用します。
-PassThruパラメータを設定すると、戻値を取得することが出来ます。
この戻値を使用して、Wait-Processコマンドレットで処理終了まで待機します。
ttpmacro.exeの実行直後に「teraTerm実行中」とログに出力し、そのままteraTerm側の処理が終了するまで待機します。
処理が終了したら、「teraTerm終了しました」とログに出力しています。
スポンサードリンク
できれば、powerShellで完結させたいんですけど、出来ないことも結構ありますからね。
■ 投捨て型
先頭に&(アンパサント)を付けてやります。
下記は、ttpmacro.exeをパラメータwork.ttlを渡して起動しています。
& "C:\Program Files (x86)\teraterm\ttpmacro.exe" "C:\work.ttl"
この方法の場合、単純に処理を実行するだけです。
powerShell側の処理は続行されます。
■ 終了まで待機する
後続の処理で、外部プログラムの実行結果を使用したい場合には、Start-Processコマンドレットを使用します。
-Waitパラメータを指定すると、処理終了まで待機します。
-ArgumentListでパラメータを指定することもできます。
Start-Process -FilePath "C:\Program Files (x86)\teraterm\ttpmacro.exe" -ArgumentList "C:\work.ttl" -Wait
やってることは同じで、ttpmacro.exeをパラメータwork.ttlを渡して起動しています。
-Waitパラメータによって、ttpmacro.exeが終了するまでpowerShellは待機します。
■ 待機中に別のことをしたい
「単純に待つのはいや。まってる間に別の処理をしたい」というなら-PassThruをパラメータを使用します。
-PassThruパラメータを設定すると、戻値を取得することが出来ます。
この戻値を使用して、Wait-Processコマンドレットで処理終了まで待機します。
Write-Output "teraTerm開始します" | out-file "C:\work.log" Default
$teraWait = Start-Process -FilePath "C:\Program Files (x86)\teraterm\ttpmacro.exe" -ArgumentList "C:\work.ttl" -PassThru
Write-Output "teraTerm実行中" | out-file "C:\work.log" Default -append
Wait-Process -Id ($teraWait.id)
Write-Output "teraTerm終了しました" | out-file "C:\work.log" Default -append
ttpmacro.exeの実行直後に「teraTerm実行中」とログに出力し、そのままteraTerm側の処理が終了するまで待機します。
処理が終了したら、「teraTerm終了しました」とログに出力しています。
スポンサードリンク


