0

PowerShell コンソールから複数のスクリプトを実行しています。これらのスクリプトは、env:ドライブ内の変数を追加/変更します。env:各スクリプトを実行する間に、ドライブをコンソールを開いたときの状態にリセットしたいと思います。env:ドライブを保存/コピーして、後でコピーして戻す方法はありますか?

4

2 に答える 2

1

最も簡単な方法は、スクリプトごとに別のプロセスを開始することです。それ以外の

.\foo.ps1

ただ使う

powershell -file .\foo.ps1

次に、各スクリプトは独自のプロセスを取得し、独自の環境を混乱させます。もちろん、これらのスクリプトがグローバル変数のようなものも変更する場合、これは機能しません。


一方、環境の状態を保存するのは非常に簡単です。

$savedState = Get-ChildItem Env:

そしてそれを再び復元します:

Remove-Item Env:*
$savedState | ForEach-Object { Set-Content Env:$($_.Name) $_.Value }
于 2015-10-22T14:27:24.850 に答える