我需要将目录树中的所有文件复制到一个目录中。快速搜索为我提供了this方法:
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"
如果我将其输入命令行,那么当作为批处理文件运行时,该功能无效。我尝试用实际路径替换变量,但得到了相同的错误。即使我创建的批处理文件只包含从命令行运行的行,但从文件运行时它也不起作用。有谁知道我做错了什么?
提前感谢你的帮助。
答案 0 :(得分: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