批处理文件重命名从txt文件中读取旧文件名和新文件名

时间:2014-04-25 08:04:16

标签: batch-file file-rename batch-rename

我做了一些搜索和阅读,但我找不到解决方案。如果此问题已在论坛上得到解答,我深表歉意。这就是我想要做的事情:

我需要重命名很多1000个文件。我可以轻松创建一个.txt文件,列出旧文件名和新文件名,如下所示:

  

oldfilename1.ext newfilename1.ext
  oldfilename2.ext newfilename2.ext
  oldfilename3.ext newfilename3.ext

等......

实际文件名如下:

  

TKP-RL-MB-00205-001.pdf SDY-352-20009SA10BA-RXW03-001.pdf
  TKP-RL-MB-00060-004.pdf SDY-352-20010SA10BA-RXW03-004.pdf

等......

我想要一个批处理文件,它从txt文件中读取两个名称,并将文件从旧名称重命名为新名称。批处理文件将与具有旧文件名的所有文件位于同一目录中。我不需要检查旧文件是否存在的功能,除非该功能对批处理文件的工作至关重要。

我正在Microsoft Windows 7工作,所以我可以使用cmdPowershell

非常感谢您的帮助。

谢谢

3 个答案:

答案 0 :(得分:3)

这应该按照你的描述进行。在测试echo之后移除do - 它只会将命令打印到屏幕上。

@echo off
for /f "usebackq tokens=1,*" %%a in ("file.txt") do echo ren "%%a" "%%b"
pause

答案 1 :(得分:1)

for /f "tokens=1,2" %%a in (yourtextfile.txt) do ECHO ren "%%a" "%%b"

- 假设文件中的唯一空格是分隔名称的空格。

%%缩减为%以直接从提示符执行。

为了测试目的,所需的REN命令仅为ECHO在您确认命令正确后,将ECHO REN更改为REN以实际重命名文件。

答案 2 :(得分:1)

如果您有该文本文件,则可以在每行的开头添加rename并将其保存为。bat

(例如,使用Notepad ++,搜索模式=扩展,将\n替换为\nrename,也许可以检查第一行和最后一行)