回答:
現在のcmdシェルから:
自分で変数をクリアする必要があります。
set ENVVAR=abc && dir & set ENVVAR=
バッチファイルから:
あなたは使用することができるsetlocalとendlocal。
@echo off
setlocal
set ENVVAR=abc && dir
endlocal
子cmdシェルを使用します。
を使用cmd /cして、子シェルを作成できます。
変数は子シェルで設定され、親シェルには影響しません(jpmc26のコメントで指摘されているように)。
cmd /C "set ENVVAR=abc && dir"
cmdプロセスを起動してそこに設定することです。例えば、cmd /C "set ENVVAR=abc && dir"。親プロセスには影響しないため、終了時に効果的に「クリア」されます。