批处理文件:在for循环中使用时抑制命令错误输出

6
我正在使用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> 在此时是意外的”。现在我卡住了,有没有办法让我完成目标而不在屏幕上显示标准错误?

1个回答

14

对于Windows NT 4及更高版本,您需要转义管道和重定向符号,方法是在它们前面加上插入符(ˆ):

for /F "tokens=1 delims=?=" %A in ('set __variable 2^>NUL') do ( set %A= )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接