使用 %%A 和 %A% 的区别
Difference between use of %%A and %A%
我有以下脚本:
FOR /F "tokens=1-4" %%A IN ("REG QUERY HKCU\Environment\") DO (
ECHO %%A
)
但是,如果我们将 ECHO %%A 更改为:
ECHO %A%
输出是一样的。
通常在批处理脚本中,我用 %A% 回显我的变量,有什么区别以及为什么人们有时使用 %%A 对应于 %A%?
两种情况,两种原因:
- 加倍的
%
是使用临时变量的记录方式,例如,在批处理文件中(不是在命令行上)用于 for
循环。
- 将
%
放在变量的每一边是documented作为扩展环境变量的方式。
大概是因为临时变量在与环境变量相同的表中可见,所以您的循环恰好可以运行 - 但就像 setlocal
范围内的变量一样,它会消失。
MSDN 文档都在 kb75634、从批处理文件文本中删除百分号
我有以下脚本:
FOR /F "tokens=1-4" %%A IN ("REG QUERY HKCU\Environment\") DO (
ECHO %%A
)
但是,如果我们将 ECHO %%A 更改为:
ECHO %A%
输出是一样的。
通常在批处理脚本中,我用 %A% 回显我的变量,有什么区别以及为什么人们有时使用 %%A 对应于 %A%?
两种情况,两种原因:
- 加倍的
%
是使用临时变量的记录方式,例如,在批处理文件中(不是在命令行上)用于for
循环。 - 将
%
放在变量的每一边是documented作为扩展环境变量的方式。
大概是因为临时变量在与环境变量相同的表中可见,所以您的循环恰好可以运行 - 但就像 setlocal
范围内的变量一样,它会消失。
MSDN 文档都在 kb75634、从批处理文件文本中删除百分号