Відповіді:
З поточної 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". Оскільки це не вплине на батьківський процес, він буде ефективно "очищений" при виході.