PowerShell에서 범위 지정은 스크립트의 개체 (변수, 별칭, 함수 등)가 전역 환경에 영향을 미치지 않도록 유지해야합니다. 이것은 명령 줄에서 잘 작동하는 것으로 보이지만 ISE에서는 작동하지 않습니다.
콘솔에 데모가 있습니다. $x전역 범위에 정의되어 있지 않은지 확인하고 내용을 표시 ScopeTest.ps1한 다음 실행 한 다음 마지막으로 $x다시 정의 되어 있는지 확인 합니다. 예상 한대로 $x스크립트 범위 내에서만 작성 및 사용되며 스크립트가 종료 된 후 글로벌 환경에서 유지되지 않습니다.

ISE에서 콘솔 창을 사용하여 스크립트를 호출하면 이것이 작동하는 것으로 보입니다.

그러나 실제로 "스크립트 실행"버튼 또는 F5를 사용하면 스크립트 내의 변수가 완료된 후에도 유지됩니다.

스크립트가 깨끗한 환경에서 시작한다고 가정하면 스크립트 작성 및 문제 해결이 약간 어려워 질 수 있습니다 (예 : 스크립트 내에 설정된 변수가 아직 존재하지 않아야 함). ISE는 왜 이런 식으로 작동합니까?
이 질문에 대한 답변은 "도트 소싱"을 언급하면서 주제에 약간의 영향을 주지만 여기서 더 자세한 설명을 얻고 싶습니다. 또한 ISE에서 스크립트가 콘솔과 다르게 실행되는 이유에 대한 설명서가 있으면 참조도 좋습니다.