使用%% A和%A%之间的差异

时间:2015-04-26 14:19:47

标签: windows batch-file command-line dos

我有以下脚本:

FOR /F "tokens=1-4" %%A IN ("REG QUERY HKCU\Environment\") DO (
    ECHO %%A
)

但是,如果我们将 ECHO %% A 更改为:

ECHO %A%

输出相同。

通常在批处理脚本中我用%A%回显我的变量,有什么不同,为什么人们有时会使用 %% A 作为% A%

1 个答案:

答案 0 :(得分:1)

两种情况,有两个原因:

  • double %是在批处理文件中(而不是在命令行上)使用临时变量(例如for循环)的文档化方法。
  • %放在变量的每一边是documented,作为扩展环境变量的方法。

大概你的循环恰好起作用,因为临时变量在与环境变量相同的表中可见 - 但是像setlocal范围内的变量一样,它就消失了。

MSDN文档在kb75634从批处理文件文本中删除的百分号