Yanor.net/
Wiki
Blog
GitHub
Sandbox
開始行:
* ErrorActionでコマンドレットのエラーをトラップ [#b6e0ad75]
** 前提 [#wb390128]
- コマンドレットの実行失敗などで発生するエラーのエラーオ...
- エラーには、終了して例外を投げるエラーと、終了しないで...
- コマンドレットのエラーは、デフォルトでは終了しないで続...
- デフォルトのエラーの動作を変えるには、シェルで$ErrorAct...
- 従って、状況によるが、PSスクリプト内では、$ErrorActionP...
** 存在しないフォルダへcdを実行する時の例外処理 [#ne02c3e6]
$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...
+ FullyQualifiedErrorId : PathNotFound,Microsoft.Pow...
2) パス 'C:\tmp456' が存在しないため検出できません。
- 1)のエラーは例外が補足されていない。(エラーメッセージ...
- 2)のエラーは例外が細くされ、エラーメッセージが処理され...
** 実行可能か調べる(パスが通っているか調べる) [#na631295]
if ((Get-Command "no-such-app.exe" -ErrorAction Silently...
echo "The app is not found"
}
** 参考 [#ud2f2af9]
- https://technet.microsoft.com/ja-jp/subscriptions/index...
- https://www.mssqltips.com/sqlservertip/2714/introductio...
終了行:
* ErrorActionでコマンドレットのエラーをトラップ [#b6e0ad75]
** 前提 [#wb390128]
- コマンドレットの実行失敗などで発生するエラーのエラーオ...
- エラーには、終了して例外を投げるエラーと、終了しないで...
- コマンドレットのエラーは、デフォルトでは終了しないで続...
- デフォルトのエラーの動作を変えるには、シェルで$ErrorAct...
- 従って、状況によるが、PSスクリプト内では、$ErrorActionP...
** 存在しないフォルダへcdを実行する時の例外処理 [#ne02c3e6]
$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...
+ FullyQualifiedErrorId : PathNotFound,Microsoft.Pow...
2) パス 'C:\tmp456' が存在しないため検出できません。
- 1)のエラーは例外が補足されていない。(エラーメッセージ...
- 2)のエラーは例外が細くされ、エラーメッセージが処理され...
** 実行可能か調べる(パスが通っているか調べる) [#na631295]
if ((Get-Command "no-such-app.exe" -ErrorAction Silently...
echo "The app is not found"
}
** 参考 [#ud2f2af9]
- https://technet.microsoft.com/ja-jp/subscriptions/index...
- https://www.mssqltips.com/sqlservertip/2714/introductio...
ページ名: