我正在尝试复制数千个图像文件,并使用它们所在文件夹的名称对其进行重命名。文件结构为: -
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
乔纳森
答案 0 :(得分: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
,如果它看起来不错。