创buildWindows 8batch file以recursion方式复制,重命名和保存子目录中的文件

我试图复制成千上万的图像文件,并用它们所在文件夹的名称重命名它们。文件结构是: –

C:\pictures\kitcam\1\master_01.jpg C:\pictures\kitcam\1\master_02.jpg C:\pictures\kitcam\2\master_01.jpg C:\pictures\kitcam\3\master_01.jpg C:\pictures\kitcam\3001\master_01.jpg 

我想创build一个新的目录C:\pictures\kitcam\all ,然后将上面的文件复制并重命名为以下命名约定:

c:\pictures\kitcam\all\[directoryname]_filename]
(将目录名称填充为4位,以使导演名称1变为0001等)

例如:-

 C:\pictures\kitcam\all\0001_master_01.jpg 

乔纳森

 @ECHO OFF &SETLOCAL SET "startfolder=C:\pictures\kitcam" SET "targetfolder=C:\pictures\kitcam\all" FOR /r "%startfolder%" %%a IN (*.jpg) DO ( SET "fname=%%~nxa" SET "fpath=%%~fa" FOR /f "delims=" %%b IN ("%%~dpa.") DO SET "nname=000%%~nxb" SETLOCAL ENABLEDELAYEDEXPANSION ECHO MOVE "!fpath!" "%targetfolder%\!nname:~-4!_!fname!" ENDLOCAL ) 

看看输出,并在move之前删除单词echo ,如果它看起来不错。