일련의 명령이 있다고 가정합니다.
# 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