AvoidAssignmentToAutomaticVariable

重症度レベル:警告

デフォルト状態:常に有効

説明

関数やパラメータで自動変数名を使うのは避けてください。 このルールは、自動変数名を使用する変数やパラメータ名への割り当てを検出します。 PowerShellは内部状態情報を格納する変数を自動的に定義し、それらを自動で管理します。 多くの自動変数を上書き できます が、それを行うとユーザーに予期せぬ影響が出たり、コードの保守やデバッグが難しくなることがあります。

自動変数はPowerShellの内部利用専用に予約し、状態情報の読み取りにのみ依存してください。

詳しくは about_Automatic_Variablesをご覧ください。

Example

非準拠

変数 $Error はグローバルスコープに存在する自動変数であり、したがって変数やパラメータ名として使ってはなりません。

function foo($Error){ }
function Get-CustomErrorMessage($ErrorMessage){ $Error = "Error occurred: $ErrorMessage" }

対応

function Get-CustomErrorMessage($ErrorMessage){ $FinalErrorMessage = "Error occurred: $ErrorMessage" }

ルールの設定

このルールは常に有効で、設定はできません。 このルールを避けるために、以下のいずれかの方法を用いてください。

  • 欲しいルールだけを含めるか、不要なルールを除外するカスタムルール設定ファイルを作成しましょう。
  • 特定のコードブロックに対してルール抑制を抑制するために、適切なルール抑制属性をコードに追加してください。 詳細については、PSScriptAnalyzerの使用に関する「抑制ルール」セクションをご覧ください。