批处理文件 - 支持以百分号结尾的语法来访问参数

Batch files - Support of syntax with ending percent sign to access arguments

批处理文件 - 支持以百分号结尾的语法来访问参数

我在 Windows XP 系统上注意到,在批处理文件中,即使使用 %\d% 语法也可以访问命令行参数。

你可以用这个来验证它:

@echo off

echo %%1:"%1"
echo %%1%%:"%1%"

if %1==%1% (
  echo yes, %%1==%%1%%
)

我找不到任何关于这个东西的参考,我看到的文档只提到了 %\d 语法。

我想知道它是官方功能(至少在某些版本的命令行上)、未记录的功能还是意外错误以及它在哪些 DOS 版本和 Windows 上有效.


编辑:

我认为发生的事情也可能是解释器忽略百分号的结果,就像在回显消息中一样。

不知道有没有办法验证这个假设

一行中的单个百分号将被删除,仅此而已。
另见 cmd.exe parser rules