在宏定义文件中定义带有 FOR 变量的 DOSKEY 时,此时无法在语法上进行处理

在宏定义文件中定义带有 FOR 变量的 DOSKEY 时,此时无法在语法上进行处理

创建以下别名时

DOSKEY echoall=FOR %p IN (*) DO echo %p

在 Windows 10 上的 CMD 中,别名按预期工作,打印目录中的所有文件。但是我尝试在单独的 makro 定义文件中定义此 makro,例如在这篇文章中描述。当我尝试运行相同的 makro 时,我收到错误消息

"p" cannot be processed syntactically at this point.

我该如何解决这个问题,以便%p实际上用在当前 cmd 中定义 makro 时的值替换它?

答案1

在 makro 定义文件中,%p必须使用额外的 进行转义%。因此以下内容将起作用:

DOSKEY echoall=FOR %%p IN (*) DO echo %%p

答案2

在批处理脚本中,你必须使用两个百分号,而不是在普通命令行中使用一个百分号

相关内容