嚴重性層級:警告
說明
此規則偵測使用自動變數名稱的自動變數與參數名稱的指派。 PowerShell 會自動定義儲存內部狀態資訊的變數,並自行管理它們。 即使 你可以 覆寫許多自動變數,這樣做可能會對使用者產生意想不到的影響,並使程式碼更難維護和除錯。
避免在函式和參數中使用自動變數名稱。 將自動變數保留給 PowerShell 內部使用,並只依賴它們來讀取狀態資訊。
欲了解更多,請參閱 about_Automatic_Variables。
方式
在函式中使用不變量與自動變數衝突的變數名稱或參數。
Example
不合規
變數 $Error 是存在於全域作用域中的自動變數,因此絕不應用作變數或參數名稱。
function foo($Error){ }
function Get-CustomErrorMessage($ErrorMessage){ $Error = "Error occurred: $ErrorMessage" }
Compliant
function Get-CustomErrorMessage($ErrorMessage){ $FinalErrorMessage = "Error occurred: $ErrorMessage" }