使用批处理脚本将文件从一个文件夹移动到具有相同层级和文件夹名称的另一个文件夹?

问题描述:

所以,我希望将所有转换后的文件夹下的文件从主源文件夹移动到具有相同层次结构的另一个输出文件夹。使用批处理脚本将文件从一个文件夹移动到具有相同层级和文件夹名称的另一个文件夹?

Source 
    -done 
    -converted 
    -folder1 
     -done 
     -converted 
     -folder11 
     -done 
     -converted 
    -folder2 
     -done 
     -converted 

TO

Output 
    (files from converted folder) 
    -folder1 
     (files from converted folder) 
     -folder11 
     (files from converted folder) 
    -folder2 
     (files from converted folder) 

我是新来的一批脚本的话,我会很感激,如果你能帮助我以某种方式。 谢谢!

+1

请向我们展示您已拥有的代码。 – Endoro 2013-03-18 07:47:11

+1

结合mfm4aa的说法,查看[问]。 – 2013-03-18 08:04:16

@ECHO OFF 
SETLOCAL 
SET source=c:\sourcedir 
SET destroot=c:\destdir 
SET cdtl=0 
:loploop 
SET /a cdtl+=1 
FOR /f "tokens=%cdtl%*delims=\" %%i IN ("%source%") DO IF NOT "%%j"=="" GOTO loploop 
FOR /f "delims=" %%i IN (
    ' dir /b/s/ad "%source%\converted" ' 
    ) DO CALL :movedest "%%~dpni%" 
) 
GOTO :eof 

:movedest 
SET destdir=%~1 
FOR /f "tokens=%cdtl%*delims=\" %%d IN (%1) DO SET destdir=%destroot%\%%e 
ECHO MD "%destdir%" 2>NUL 
ECHO MOVE /y "%~1\*.*" "%destdir%\" 
GOTO :eof 

倒数第二行中的ECHO简单地显示了所提出的操作。在您确认了您想要的操作后,只需删除ECHO关键字即可执行此操作。

请注意,MOVE命令中的/y开关将覆盖文件的任何现有目标版本。