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-ExpressionPowerShell のeval同等の機能である を使用することもできます。これは、プロンプトでコマンドを自分で入力するのとまったく同じです。

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

あるいはもっと簡潔に言うと:

gc .\foo.ps1 -raw | iex

関連情報