我试图在Windows命令行(或批处理文件)中为/ f运行多个命令。这是展示问题的简化代码:
for /f "usebackq tokens=*" %a IN (`echo a & echo b`) do echo %a
这会显示错误消息:
& was unexpected at this time.
以下每项工作都很好:
for /f "usebackq tokens=*" %a IN (`echo a`) do echo %a
for /f "usebackq tokens=*" %a IN (`echo b`) do echo %a
echo a & echo b
所以我的问题是,是否可以按照我在单个for / f循环中尝试的方式运行两个命令。
感谢您提供的任何帮助。
答案 0 :(得分:2)
您需要转义&
,以便将其解析为子表达式的一部分,而不是作为FOR的一部分。将&
更改为^&
for /f "usebackq tokens=*" %a IN (`echo a ^& echo b`) do echo %a
作为旁注,此行将在命令行中运行,但通常您打算将其放入批处理文件中。在批处理文件中,您需要将%a
更改为%%a
,同时将百分号加倍,如下所示:
for /f "usebackq tokens=*" %%a IN (`echo a ^& echo b`) do echo %%a