CMD 批量重命名。从文本文件读取新名称

CMD 批量重命名。从文本文件读取新名称

我有一个产品图片目录,我想将其重命名为产品的 UPC。我在电子表格中保存了文件名映射,因此我可以将其导出为 CSV 或制表符分隔文件。

给定 filenames.txt:

CurrentName     NewName
DSCN4033.png    750732000259.png
DSCN4023.png    750732000013.png
DSCN4024.png    750732000020.png
DSCN4022.png    750732000099.png

DSCN4033.png 将变为 750732000259.png

如果我使用 Bash 执行此操作,命令将是

同时读取旧的新内容;执行 mv "$old" "$new";完成 < filenames.txt

这是工作中的一个项目,必须使用 Windows 批处理文件完成,以便我的继任者不必处理 Cygwin。

答案1

如果您当前的名称中没有空格,则以下命令应该可以在命令行中运行:

for /f "skip=1 tokens=1*" %A in (filenames.txt) do ren "%A" "%B"

如果放入批处理文件中,百分比必须加倍:

@for /f "skip=1 tokens=1*" %%A in (filenames.txt) do ren "%%A" "%%B"

FOR 是 CMD.EXE 中最复杂的内部命令。使用命令行中的help forfor /?来访问文档。

相关内容