如何使用批处理脚本重命名带有模式的文件

How to rename file with pattern using batch script

例如,我有一个名为 pair.txt 的 .txt 文件。

示例:

AAA_BBB_CCC_DDD_EEE_FFF_GGG_HHH.idoc.xml            AAAA
AAA_BBB_CCC_DDD_EEE_FFF_111_222.idoc.xml            BBBB
AAA_BBB_CCC_DDD_EEE_FFF_333_444.idoc.xml            CCCC

现在这个文件包含 2 列文件名。第一列将是重命名第二列的模式。现在我想使用第 6 个和第 7 个“_”的右侧作为模式。第二列中文件的最终文件名必须是:

AAAA.GGG_HHH
BBBB.111_222
CCCC.333_444

如您所见,我没有包含 .idoc.xml 部分。现在我想把代码放在这个 for 语句中:

for /f "tokens=1,2" %%a in ('type c:\user\pair.txt') do (
        echo Renaming file : %%b
        )

我怎样才能做到这一点?

for /f "usebackq tokens=1,2" %%a in ("c:\user\pair.txt") do (
    for /f "tokens=7,8 delims=_." %%c in ("%%a") do (
        echo Renaming file : %%b = %%b.%%c_%%d
    )
)

使用第二个 for 命令拆分第一列,然后使用精简的标记