我在for循环中遍历命令输出。考虑以下代码:
for /F "tokens=1 delims=?=" %%A in ('set __variable') do ( set %%A= )
基本上,我试图清除名称以“__variable”开头的每个环境变量的值。但是,如果未设置此类变量,则会出现错误消息“未定义环境变量__variable”,这不是我希望在控制台上显示的内容。所以自然地,我会像这样更改我的代码:
for /F "tokens=1 delims=?=" %%A in ('set __variable 2> NUL') do ( set %%A= )
但是,现在我收到一个新错误,提示“2>目前是意外情况”。或类似的效果。现在我被困住了。有什么方法可以让我完成目标,而又不会在屏幕上显示标准错误?
最佳答案
对于Windows NT 4和更高版本,您将需要对管道符号和重定向符号进行转义,这可以通过在符号和符号前面加上尖号(ˆ)来完成:
for /F "tokens=1 delims=?=" %A in ('set __variable 2^>NUL') do ( set %A= )
关于batch-file - 批处理文件: suppress command error output when used in a for loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7179028/