PowerShell,エラー発生時、エラー情報を非表示にする方法

スポンサーリンク

鍛錬 490

PowerShell,エラー発生時、エラー情報を非表示にする方法

エラーが発生するとコンソールにエラー情報が表示されますが、エラー発生時の挙動を指定するには $ErrorActionPreference を使用します。
 
使用方法は、以下に示す通りです。

エラー情報を表示せずに処理を継続する

$ErrorActionPreference = “SilentlyContinue”

 
エラー情報を表示して処理を継続する

$ErrorActionPreference = “Continue”

 
エラー情報を表示して処理を中断する

$ErrorActionPreference = “Stop”
スポンサーリンク

スクリプト

以下は、エラー発生時の挙動を確認するスクリプト、check_error.ps1 です。

今回は、存在しないファイル ABC.txt の内容を cat で出力しようとして、エラーを発生させています。

# 存在しないファイル名を格納
$filename = "ABC.txt"

echo "エラー情報を表示せずに処理を継続----------"
$ErrorActionPreference = "SilentlyContinue"
cat $filename
echo "------------------------------------------`r`n"

echo "エラー情報を表示して処理を継続------------"
$ErrorActionPreference = "Continue"
cat $filename
echo "------------------------------------------`r`n"

echo "エラー情報を表示して処理を中断------------"
$ErrorActionPreference = "Stop"
cat $filename
echo "------------------------------------------"

echo "このechoによる出力は実行されない"
スポンサーリンク

実行結果

以下は、スクリプト check_error.ps1 を実行しています。

PS D:\tmp>
PS D:\tmp> .\check_error.ps1
エラー情報を表示せずに処理を継続----------
------------------------------------------

エラー情報を表示して処理を継続------------
cat : パス 'D:\tmp\ABC.txt' が存在しないため検出できません。
発生場所 D:\tmp\check_error.ps1:12 文字:1
+ cat $filename
+ ~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (D:\tmp\ABC.txt:String) [Get-Content], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

------------------------------------------

エラー情報を表示して処理を中断------------
cat : パス 'D:\tmp\ABC.txt' が存在しないため検出できません。
発生場所 D:\tmp\check_error.ps1:17 文字:1
+ cat $filename
+ ~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (D:\tmp\ABC.txt:String) [Get-Content], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

 
上記に示した通り、$ErrorActionPreference を使用してエラー発生時の挙動を指定することができました。

タイトルとURLをコピーしました