【问题标题】:Batch file: suppress command error output when used in a for loop批处理文件:在 for 循环中使用时抑制命令错误输出
【发布时间】:2011-08-24 16:31:37
【问题描述】:

我在 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> 在这个时候是意外的。”或类似的效果。现在我被困住了;有没有办法让我完成我的目标而不会在屏幕上显示标准错误?

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    对于 Windows NT 4 及更高版本,您需要转义管道符号和重定向符号,这是通过在它们前面加上插入符号 (^) 来完成的:

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

    【讨论】:

      猜你喜欢
      • 2018-01-27
      • 1970-01-01
      • 2018-01-09
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      相关资源
      最近更新 更多