我需要编写一个DOS批处理文件,在概念上这样做:
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
SET TARGET=c:\Temp\directory name with spaces\
FOR %%C IN (A B C D ) DO (
copy "Setups\%%C\Release\%%C%Setup.msi" "%%TARGET%\%%C"
echo Similar commands ...
)
例如,
设置\ A \ Release \ ASetup.msi将被复制到c:\ temp \目录名称,其中包含空格\ A \ ASetup.msi
我遇到的问题是命令处理器非常直观地解析它,并且不会产生预期的(甚至是有用的)结果。 这可能在一个命令文件中吗?
(我可以使用辅助批处理文件 - 但这看起来不太优雅)
答案 0 :(得分:2)
call copy "Setups\%%C\Release\%%CSetup.msi" "%TARGET%\%%CSetup.msi"
您在%%C%Setup.msi
然后%%TARGET%
中的双倍百分比 - 您只需要一个。
您在目标文件名末尾缺少Setup.msi。
注意:我习惯使用了呼叫,即使你在这个例子中并不严格需要它。