PowerShell スクリプト内の変数宣言を強制させる方法(VBAのOption Explicitに相当)

PowerShell

スクリプトの先頭で 【Set-PSDebug -Strict】とすると、変数の宣言を強制させることができる。

これまで自分が扱った言語(C言語 等)では、変数宣言が当たり前だったから、これは馴染む。

使用例1:あえて代入間違えのコードの先頭に Set-PSDebug -Strict があった場合

Set-PSDebug -Strict

#変数I(アイ)に1を代入
$I = 1

#スペルミスで変数l(エル)を出力
Write-Host $l

実行結果1:実行時にエラーがでることで、宣言ミスがわかる。

PS C:\Users\papanda925> Set-PSDebug -Strict
 変数I(アイ)に1を代入
 $I = 1
 スペルミスで変数l(エル)を出力
 Write-Host $l
 変数 '$l' は、設定されていないために取得できません。
 発生場所 行:7 文字:12
 Write-Host $l
 ~~ CategoryInfo          : InvalidOperation: (l:String) []、RuntimeException
 FullyQualifiedErrorId : VariableIsUndefined 
 PS C:\Users\papanda925> 

使用例2:ちなみに Set-PSDebug -off とすると

Set-PSDebug -Off

#変数I(アイ)に1を代入
$I = 1

#スペルミスで変数l(エル)を出力
Write-Host $l

実行結果2:実行時にエラーが発生しない

PS C:\Users\hp> Set-PSDebug -Off
 変数I(アイ)に1を代入
 $I = 1
 スペルミスで変数l(エル)を出力
 Write-Host $l
 PS C:\Users\hp> 
ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

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