2013-10-14 122 views
0

我需要重命名很多文件。重命名很多文件

我有一个包含270个PDF文件1个zip文件,这些有坏的名字,像{4E92C2C7-0A9B-4F77-99CC-D1F03B871564} .PDF 我也有一个索引PDF文件有两个colums,1文件的名称,其他有一个简短的描述。

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

是否有可能写一个程序看起来在第2列,并且如果文件是发现,将其重命名为列1中的名称。

+0

是的,这是可能的。你有什么尝试? – jeb

+0

现在我一直在手动做这个,但是我看到很多这些zip文件将来会出现。我刚开始研究这个问题。你会如何解决这个问题? :) –

+0

从常见问题解答:“询问代码的问题必须证明对所解决问题的最小理解。包括尝试解决方案,为什么他们没有工作,以及预期的结果。[问] – jeb

回答

0

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

对于您给的例子: Airol1升(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 
+0

谢谢,两列之间没有=号。我不知道如何使用python。但是我找到了另一个解我只是将pdf转换为excel。使用= CONCATENATE命令创建一个函数。我把价值新的名字放在A1 - 旧名B1。在D1和.pdf中添加了“符号到E1。使用这个代码=(”ren“;; D1; B1; D1;”“; D1; A1; E1; D1)复制到一切,我结束了仁”旧名“”newname.pdf“,将此结果复制到记事本并保存为蝙蝠,工作得很好。 –

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" 
0

测试下面的命令行脚本:

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

如果结果缝即可,捞出ECHO并重新运行。