web-dev-qa-db-ja.com

Windowsシェルセッションからすべての環境変数をクリアするにはどうすればよいですか?

新しいWindowsシェルセッションを開始して次のように入力した場合:

env

多くの環境変数が設定されています。現在のシェルセッションからall環境変数を削除して、コマンドラインプログラムの実行をデバッグしたいと思います。

私は次のアプローチで一つずつ通り抜けることができました:

SET FOO=
SET BAR=
SET ... ... ...

しかし、一度にすべてをクリアする簡単な方法はありますか?

12
TiGz

これはバッチファイルに書き込むことができます。

@echo off
if exist ".\backupenv.bat" del ".\backupenv.bat"
for /f "tokens=1* delims==" %%a in ('set') do (
echo set %%a=%%b>> .\backupenv.bat
set %%a=
)

基本的には、各環境変数を実行し、それらをバッチファイル(backupenv.bat)次に、各変数をクリアします。それらを復元するには、backupenv.batファイル。

14
Gaff

バッチファイルのすべての環境変数のみをクリアする場合は、さらに簡単になります。

@echo off
Setlocal enabledelayedexpansion
Set >set

For /F "tokens=1* delims==" %%i in (set) do set %% %i=
Del set
Set

最後の行は、すべての環境変数を出力します。これらはなしでなければならず、コードが機能したことを確認します。

Setlocalが使用されるため、バッチの終了後にすべての環境変更が失われます。したがって、バッチの後にSetと入力すると、すべての環境変数がまだ存在していることがわかります。したがって、バックアップファイルに保存する必要はありません。

6
Aaron Lowe