如果我启动一个新的 Windows shell 会话并键入:
env
Run Code Online (Sandbox Code Playgroud)
我看到设置了很多环境变量。我想通过从当前 shell 会话中删除所有环境变量来调试命令行程序的运行。
我可以使用以下方法一一进行:
SET FOO=
SET BAR=
SET ... ... ...
Run Code Online (Sandbox Code Playgroud)
但是,有没有一种简单的方法可以一次性清除它们?
Gaf*_*aff 15
您可以将其写入批处理文件中:
@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=
)
Run Code Online (Sandbox Code Playgroud)
它基本上遍历每个环境变量,将它们备份到批处理文件 ( backupenv.bat
),然后清除每个变量。要恢复它们,您可以运行该backupenv.bat
文件。
小智 6
如果您只想清除批处理文件的所有环境变量,那就更容易了。
@echo off
Setlocal enabledelayedexpansion
Set >set
For /F "tokens=1* delims==" %%i in (set) do set %% %i=
Del set
Set
Run Code Online (Sandbox Code Playgroud)
最后一行输出所有环境变量,应该没有,确认代码有效。
因为Setlocal
使用了,批处理结束后所有的环境变化都会丢失。因此,如果您Set
在批处理之后键入,您将看到所有环境变量仍然存在,因此无需将其存储在备份文件中。
归档时间: |
|
查看次数: |
20665 次 |
最近记录: |