AvoidAssignmentToAutomaticVariable

심각도 수준: 경고

설명

이 규칙은 자동 변수 이름과 매개변수 이름에 할당된 것을 감지합니다. 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" }