我需要重命名很多文件。
我有一个包含270个PDF文件的zip文件,这些文件有{4E92C2C7-0A9B-4F77-99CC-D1F03B871564} .pdf等错误名称 我还有一个带有两个列的索引pdf文件,其中1个带有文件名,另一个带有简短描述。
实施例: Airol 1升(Airol)(Sikkerhetsdatablad)= {4E92C2C7-0A9B-4F77-99CC-D1F03B871564} .pdf
是否可以编写一个在第2列中查找的程序,如果找到了文件,则将其重命名为第1列中的名称。
答案 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
并再次运行。