1

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

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]_filename]
(将目录名称填充为 4 位数字,以便导演名称 1 变为 0001 等)

例如:-

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

乔纳森

4

1 回答 1

3
@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
)

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

于 2013-08-13T10:44:01.463 回答