Windows Powershell: 활성 셸에서 일련의 명령을 평가합니다.

Windows Powershell: 활성 셸에서 일련의 명령을 평가합니다.

일련의 명령이 있다고 가정합니다.

# foo.ps1
do-this
do-that 
do-something-totally-different
etc.

다음으로, 활성 쉘에서 이러한 내용을 작성하지 않아도 되기를 원하므로(쉘 환경이 수정되기 때문에) bash에서는 다음과 같이 작성합니다.

cat foo.ps1 | xargs -I arg eval arg

아니면 그 라인에 따른 것.

Windows Powershell로 동일한 효과를 얻으려면 어떻게 해야 합니까?

답변1

새 범위가 아닌 현재 범위에서 스크립트 파일을 실행하려면 다음을 사용하십시오.도트 소싱:

. .\foo.ps1

Invoke-Expression또는 PowerShell과 동등한 를 사용할 수 있습니다 eval. 이는 프롬프트에서 직접 명령을 입력하는 것과 정확히 동일해야 합니다.

Get-Content .\foo.ps1 -Raw | Invoke-Expression

또는 더 간결하게 말하면:

gc .\foo.ps1 -raw | iex

관련 정보