我试过这样
pushd \\somedrive.se\Install\Paket\XXX\
echo "start..."
for /f %i in ('dir /a:d /b bu* ') do echo /q %i
popd
从脚本运行时得到以下输出:
Z:\Paket\XXX>echo "start..."
"start..."
/b was unexpected at this time.
Z:\Paket\XXX>for /f d /b bu* ') do echo /q i
但是如果我直接在命令窗口中执行此操作,它会起作用吗?
Z:\Paket\XXX>for /f %i in ('dir /a:d /b bu* ') do echo /q %i
Z:\Paket\XXXX>echo /q bu.1_2.zip
/q bu.1_2.zip
我究竟做错了什么?
答案1
这与 无关pushd
。
从批处理运行时(而不是直接从 cmd 行运行)需要使用双百分号,因此它应该变成:
for /f %%i in ('dir /a:d /b bu* ') do echo /q %%i
质谱参考:https://technet.microsoft.com/en-us/library/cc754900.aspx