批量重命名图像文件集

批量重命名图像文件集

我们使用如下所述的 6 摄像机昆虫成像装置:https://osf.io/s2p73/

我们的工作流程的一部分涉及重命名图像文件,以便将它们导入我们的数据库。我们目前通过批量重命名实用程序中的多个“重命名对”步骤来完成此操作,并正在寻找一个可以简化该过程的单个 DOS 批处理文件。图像开始并保留在两个文件夹中,其初始名称 --> 最终名称如下所示。每天文件夹 1 中有最多 1000 张图像,文件夹 2 中有相应的 5000 张图像需要处理。

第一个数字表示标本(0001/2/3/4/5 等)。下面的粗体数字是唯一的目录号,在重命名期间需要将其转移到其他 5 幅图像,目录号后的最后两个数字在图像集之间可以不同。

文件夹 1:“已重命名”

0001_ALICE1-012345678_887856_162658.jpg --> 012345678_887856_162658.jpg

文件夹 2:“附加”

0001_ALICE2.jpg -->012345678_横向.jpg

0001_ALICE3.jpg -->012345678附加1.jpg

0001_ALICE4.jpg -->012345678附加2.jpg

0001_ALICE5.jpg -->012345678附加3.jpg

0001_ALICE6.jpg -->012345678附加4.jpg

下一组图像将是 0002_etc,并且具有不同的目录 数字需要转移。任何帮助都将不胜感激!

答案1

  • 使用匹配模式迭代 Folder1 中的文件
  • 将基本文件名 ( %%F)拆分-_部分 ( %%A..%%E)
  • 用于%%C..%%E重命名 Alice1 文件
  • %%A根据您的方案重命名另一个

我的 Ramdisk A 上的测试文件夹/文件的初始树:

> tree a:\ /f
A:\
├───Additional
│       0001_ALICE2.jpg
│       0001_ALICE3.jpg
│       0001_ALICE4.jpg
│       0001_ALICE5.jpg
│       0001_ALICE6.jpg
└───Renamed
        0001_ALICE1-012345678_887856_162658.jpg

此批处理文件:

:: Q:\Test\2019\03\30\SU_1419303.cmd
@Echo off
set "Folder1=A:\Renamed"
set "Folder2=A:\Additional"

For /f "delims=" %%F in ('
    Dir /B/S/A-D "%Folder1%\????_Alice?-*_*_*.jpg
') Do For /F "tokens=1-5 delims=-_" %%A in ("%%~nF") DO (
    Echo %%~nxF
    Echo %%A %%B %%C %%D %%E
    Ren "%%~fF" "%%C_%%D_%%E%%~xF"

    Ren "%Folder2%\%%A_ALICE2.jpg"  "%%C_lateral.jpg"     
    Ren "%Folder2%\%%A_ALICE3.jpg"  "%%C_additional_1.jpg"
    Ren "%Folder2%\%%A_ALICE4.jpg"  "%%C_additional_2.jpg"
    Ren "%Folder2%\%%A_ALICE5.jpg"  "%%C_additional_3.jpg"
    Ren "%Folder2%\%%A_ALICE6.jpg"  "%%C_additional_4.jpg"
)

得出以下结果:

> Q:\Test\2019\03\30\SU_1419303.cmd
0001_ALICE1-012345678_887856_162658.jpg
0001 ALICE1 012345678 887856 162658

> tree a:\ /f
A:\
├───Additional
│       012345678_additional_1.jpg
│       012345678_additional_2.jpg
│       012345678_additional_3.jpg
│       012345678_additional_4.jpg
│       012345678_lateral.jpg
└───Renamed
        012345678_887856_162658.jpg

相关内容