AvoidAssignmentToAutomaticVariable

Уровень тяжести: Предупреждение

Описание

Это правило обнаруживает назначения автоматическим переменным и именам параметров, использующих автоматические имена переменных. PowerShell автоматически определяет переменные, хранящие внутреннюю информацию о состоянии, и управляет ими самостоятельно. Хотя вы можете переопределить многие автоматические переменные, это может привести к неожиданным последствиям для пользователей и усложнить поддержание и отладку кода.

Избегайте использования автоматических имен переменных в функциях и параметрах. Резервируйте автоматические переменные только для внутреннего использования PowerShell и полагайтесь на них только для чтения информации о состоянии.

Чтобы узнать больше, смотрите about_Automatic_Variables.

Как

Используйте имена переменных в функциях или их параметрах, которые не конфликтуют с автоматическими переменными.

Пример

Несоответствующий

Переменная $Error — это автоматическая переменная, существующая в глобальной области, поэтому никогда не должна использоваться как имя переменной или параметра.

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

Compliant

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