我们使用如下所述的 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