创建windows 8批处理文件以递归方式复制、重命名和保存子目录中的文件

创建windows 8批处理文件以递归方式复制、重命名和保存子目录中的文件,windows,batch-file,cmd,directory,Windows,Batch File,Cmd,Directory,我正在尝试复制数千个图像文件,并用它们所在的文件夹名称重命名它们。文件结构为:- 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 我想创建一个新目录C:\pictures\kitcam\al

我正在尝试复制数千个图像文件,并用它们所在的文件夹名称重命名它们。文件结构为:-

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
我想创建一个新目录
C:\pictures\kitcam\all
,并将上述文件复制并重命名为以下命名约定:-

c:\pictures\kitcam\all\[directoryname]\u 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
,如果它看起来不错的话。

哇,太棒了,我终于可以清除我的iPad上的所有kitcam照片了-非常感谢!!!!!