如何让它通过某些文件夹(例如驱动器E :)上的1-8和它们的树并将它们复制到F:批处理文件中(我的工作无效):
set drive=E:
for %%a in (1,2,3,4,5,6,7,8) do (
set folder=%%a
for /R "%drive%\%%a" %%b in (*) do (
copy "%%b" %drive%\%folder%
答案 0 :(得分:0)
我认为你想要的语法是
for %%F in (1 2 3 4 5 6 7 8) do (
xcopy /e e:\%%F f:\
)
答案 1 :(得分:0)
您正尝试在循环中设置和重用环境变量。这不起作用,因为cmd
在解析命令时扩展所有环境变量,而不是在运行它时。所以你需要启用延迟扩展:
setlocal enabledelayedexpansion
set drive=E:
for %%a in (1,2,3,4,5,6,7,8) do (
set folder=%%a
for /R "%drive%\%%a" %%b in (*) do (
copy "%%b" %drive%\!folder!
)
)
(你也错过了一些右括号,我为你添加了这些括号)
但你也可以使用%%a
。它应该仍然存在于内循环...
set drive=E:
for %%a in (1,2,3,4,5,6,7,8) do (
for /R "%drive%\%%a" %%b in (*) do (
copy "%%b" %drive%\%%a
)
)