因此,我希望将所有已转换文件夹下的文件从主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)
我是批处理脚本的新手,所以如果你能以某种方式帮助我,我将非常感激。 谢谢!
答案 0 :(得分: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
倒数第二行中的ECHO
只显示提议的操作。在您确认了要执行的操作后,只需删除ECHO
关键字即可执行此操作。
请注意/y
命令中的MOVE
开关将覆盖文件的任何现有目标版本。