AvoidAssignmentToAutomaticVariable

Poziom nasilenia: Ostrzeżenie

Opis

Reguła ta wykrywa przypisania automatycznych zmiennych oraz nazw parametrów, które używają automatycznych nazw zmiennych. PowerShell automatycznie definiuje zmienne, które przechowują wewnętrzne informacje o stanie i samodzielnie nimi zarządza. Chociaż można nadpisać wiele automatycznych zmiennych, może to mieć nieoczekiwane skutki dla użytkowników i utrudnić utrzymanie i debugowanie kodu.

Unikaj używania automatycznych nazw zmiennych w funkcjach i parametrach. Zarezerwuj zmienne automatyczne tylko do użytku wewnętrznego PowerShell i polegaj na nich tylko do odczytu informacji o stanie.

Aby dowiedzieć się więcej, zobacz about_Automatic_Variables.

Jak

Używaj nazw zmiennych w funkcjach lub ich parametrów, które nie kolidują ze zmiennymi automatycznymi.

Przykład

Niezgodne

Zmienna $Error jest zmienną automatyczną istniejącą w skali globalnej i dlatego nigdy nie powinna być używana jako nazwa zmiennej lub parametru.

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

Zgodne

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