重命名很多文件

时间:2013-10-14 07:48:32

标签: pdf batch-file rename

我需要重命名很多文件。

我有一个包含270个PDF文件的zip文件,这些文件有{4E92C2C7-0A9B-4F77-99CC-D1F03B871564} .pdf等错误名称 我还有一个带有两个列的索引pdf文件,其中1个带有文件名,另一个带有简短描述。

实施例: Airol 1升(Airol)(Sikkerhetsdatablad)= {4E92C2C7-0A9B-4F77-99CC-D1F03B871564} .pdf

是否可以编写一个在第2列中查找的程序,如果找到了文件,则将其重命名为第1列中的名称。

3 个答案:

答案 0 :(得分:0)

我会用像Python这样的脚本语言编写程序,通过索引文件查找键/值对。如果值是特定格式(如前五个字符是数字和/或字母),则使用该值搜索原始文件并将其重命名为密钥。

对于您给出的示例:  Airol 1升(Airol)(Sikkerhetsdatablad)= {4E92C2C7-0A9B-4F77-99CC-D1F03B871564} .pdf

一个简单的伪代码将是:

For each line in index file:
      split the line into KEY & VALUE (split on the '=' sign)
      If first 5 characters of VALUE are all numbers and/or characters:
            search for the file named VALUE
            rename the file named VALUE to KEY
      End If

答案 1 :(得分:0)

将文件列表提取到list.txt,然后

for %f in ({*.pdf) do (
    for /f "delims== tokens=1,2" %g in ('type list.txt ^| find "%f" ') do (
        if not "%g"=="" ren "%f" "%g.pdf"
    )
)

或只是一行

for %f in ({*.pdf) do for /f "delims== tokens=1,2" %g in ('type list.txt ^| find "%f" ') do if not "%g"=="" ren "%f" "%g.pdf"

答案 2 :(得分:0)

从命令行测试以下脚本:

FOR /F "DELIMS== TOKENS=1,*" %i IN (index_file) DO ECHO REN "%j" "%i.pdf"

如果结果接缝没问题,请删除ECHO并再次运行。