AvoidAssignmentToAutomaticVariable

严重性级别:警告

说明

该规则检测到使用自动变量名的自动变量和参数名的赋值。 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" }