Windows Powershell:在活動 shell 中評估一系列指令

Windows Powershell:在活動 shell 中評估一系列指令

假設我有一系列命令:

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

接下來,我不想再在活動 shell 中寫出這些內容(因為它修改了我的 shell 環境),所以在 bash 中我只需寫:

cat foo.ps1 | xargs -I arg eval arg

或類似的規定。

如何使用 windows powershell 達到相同的效果?

答案1

若要在目前作用域而不是新作用域中執行腳本文件,請使用點源:

. .\foo.ps1

或者,您可以使用Invoke-ExpressionPowerShell 的eval等效項,它應該與在提示符號下自行鍵入命令完全相同:

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

或者更簡潔地說:

gc .\foo.ps1 -raw | iex

相關內容