创建以下别名时
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
在批处理脚本中,你必须使用两个百分号,而不是在普通命令行中使用一个百分号