新しいWindowsシェルセッションを開始して次のように入力した場合:
env
多くの環境変数が設定されています。現在のシェルセッションからall環境変数を削除して、コマンドラインプログラムの実行をデバッグしたいと思います。
私は次のアプローチで一つずつ通り抜けることができました:
SET FOO=
SET BAR=
SET ... ... ...
しかし、一度にすべてをクリアする簡単な方法はありますか?
これはバッチファイルに書き込むことができます。
@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
ファイル。
バッチファイルのすべての環境変数のみをクリアする場合は、さらに簡単になります。
@echo off
Setlocal enabledelayedexpansion
Set >set
For /F "tokens=1* delims==" %%i in (set) do set %% %i=
Del set
Set
最後の行は、すべての環境変数を出力します。これらはなしでなければならず、コードが機能したことを確認します。
Setlocal
が使用されるため、バッチの終了後にすべての環境変更が失われます。したがって、バッチの後にSet
と入力すると、すべての環境変数がまだ存在していることがわかります。したがって、バックアップファイルに保存する必要はありません。