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

Windows 使用%%A和%A%之间的差异,windows,batch-file,command-line,dos,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%?两种情况,两个原因: 双%是在批处理文件(不在命令行上)中使用临时变量的一种有文档记录的方法,例如用于for循环 将%放在变量的每一侧是扩展环境变量的一种方式

我有以下脚本:

FOR /F "tokens=1-4" %%A IN ("REG QUERY HKCU\Environment\") DO (
    ECHO %%A
)
但是,如果我们将ECHO%%A更改为:

ECHO %A%
输出是相同的


通常,在批处理脚本中,我用%A%回显变量,这有什么区别?为什么人们有时使用%A作为%A%

两种情况,两个原因:

  • %
    是在批处理文件(不在命令行上)中使用临时变量的一种有文档记录的方法,例如用于
    for
    循环
  • %
    放在变量的每一侧是扩展环境变量的一种方式
假设您的循环恰好工作,因为临时变量在与环境变量相同的表中是可见的,但与
setlocal
范围内的变量一样,它消失了

MSDN文档均为百分比符号,从批处理文件文本中删除