0

因此,我希望将所有转换后的文件夹下的文件从主 Source 文件夹移动到另一个具有相同层次结构的 Output 文件夹。

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

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

我是批处理脚本的新手,如果您能以某种方式帮助我,我将不胜感激。谢谢!!

4

1 回答 1

0
@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

倒数第二行中的ECHOs 只是显示了建议的操作。在您确认这是您想要执行的操作后,只需删除ECHO关键字即可执行移动。

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

于 2013-03-18T08:37:29.797 回答