ErrorActionでコマンドレットのエラーをトラップ前提
存在しないフォルダへcdを実行する時の例外処理$ErrorActionPreference = "Continue" try { cd c:\tmp123 } catch { write-host "1) " $error[0] } try { cd c:\tmp456 -ErrorAction "Stop" } catch { write-host "2) " $error[0] } ↓ cd : パス 'C:\tmp123' が存在しないため検出できません。 発生場所 C:\Users\brazil\tmp\1.ps1:3 文字:6 + cd c:\tmp123 + ~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\tmp123:String) [Set-Location], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand 2) パス 'C:\tmp456' が存在しないため検出できません。
実行可能か調べる(パスが通っているか調べる)if ((Get-Command "no-such-app.exe" -ErrorAction SilentlyContinue) -eq $Null) { echo "The app is not found" } 参考 |
|