严重性级别:警告
说明
该规则检测到使用自动变量名的自动变量和参数名的赋值。 PowerShell 会自动定义存储内部状态信息的变量,并自行管理这些变量。 虽然 你可以 覆盖许多自动变量,但这样做可能会对用户产生意想不到的影响,使代码更难维护和调试。
避免在函数和参数中使用自动变量名。 将自动变量保留给PowerShell内部使用,并仅依赖它们读取状态信息。
欲了解更多信息,请参见 about_Automatic_Variables。
方式
在函数或其参数中使用不与自动变量冲突的变量名称。
示例
非符合性
该变量 $Error 是存在于全局作用域中的自动变量,因此绝不应用作变量或参数名称。
function foo($Error){ }
function Get-CustomErrorMessage($ErrorMessage){ $Error = "Error occurred: $ErrorMessage" }
合规的
function Get-CustomErrorMessage($ErrorMessage){ $FinalErrorMessage = "Error occurred: $ErrorMessage" }