題 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。


2
2018-05-22 23:46


起源




答案:


如果當前名稱中沒有空格,則以下命令應在命令行中起作用:

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 for 要么 for /? 從命令行訪問文檔。


3
2018-05-23 12:46



哇。我從來沒有想過要在FOR中尋找這種功能。 - picobit