0

我需要将目录树中的所有文件复制到一个目录中。快速搜索为我提供了这种方法:

for /f "tokens=*" %a in ('dir /b /s /a-d') do @copy "%a" "c:\Single-Folder"

我试过了,效果很好。决定稍微简化一下,我创建了一个快速批处理文件,这样我以后就不必再查找它了。我的批处理文件如下所示:

set COPY_FROM="C:\Users\me\Desktop\Disc 1"
set COPY_TO="C:\Testing\test"

cd %COPY_FROM%
for /f "tokens=*" %a in ('dir /b /s /a-d') do @copy %COPY_TO%
pause

不幸的是,当我执行此操作时,出现错误:

C:\Users\me\Desktop\Tools>set COPY_FROM="C:\Users\me\Desktop\Disc 1"

C:\Users\me\Desktop\Tools>set COPY_TO="C:\Testing\test"
"\Users\me\Desktop\Disc 1"') was unexpected at this time.
C:\Users\me\Desktop\Tools>for /f "tokens=*" "\Users\me\Desktop\Disc 1"') do @copy "\Testing\test"

如果我将它输入到命令行中,则在作为批处理文件运行时不起作用。我确实尝试用实际路径替换变量,但得到了同样的错误。即使我只使用命令行中的行创建批处理文件,从文件运行时它也不起作用。有谁知道我做错了什么?

提前感谢您的任何帮助。

4

1 回答 1

1
@echo off
set "COPY_FROM=C:\Users\me\Desktop\Disc 1"
set "COPY_TO=C:\Testing\test"
md "%copy_to%" 2>nul
cd /d "%COPY_FROM%"
for /f "delims=" %%a in ('dir /b /s /a-d') do copy "%%a" "%COPY_TO%"
pause
于 2013-09-05T14:26:27.937 回答