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