概要
PowerShellでInvoke-Expression
でも終了ステータス(ExitCode)を取得してみます。
終了ステータスとれない問題
たとえばこんなかんじのPowerShellスクリプトがあったとする。
Write-Host 'wawawa' exit 2
実行して終了ステータスとると当然Falseになる。
PS > .\wawawa.ps1 wawawa PS > $? False
だけどInvoke-Expression
で実行したときは終了ステータスがTrueになってしまう。
これはInvoke-Expression
は正常に成功しているためである。
PS > Invoke-Expression .\wawawa.ps1 wawawa PS > $? True
それの解決策
こうするとできる。
PS > $command=".\wawawa.ps1;`$?" PS > $result=Invoke-Expression $command PS > $result[-1] False
おわりに
たいへんですね
PowerShell実践ガイドブック ~クロスプラットフォーム対応の次世代シェルを徹底解説~
- 作者:吉崎 生
- 出版社/メーカー: マイナビ出版
- 発売日: 2018/05/30
- メディア: 単行本(ソフトカバー)