我试图在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循环中尝试做的那样,同时运行两个命令。
感谢您提供的帮助
您需要转义&
,以便将其作为子表达式的一部分解析,而不是作为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