2013-10-14 3 views
0

Мне нужно переименовать много файлов.Переименуйте много файлов

У меня есть 1 почтовый файл, содержащий 270 PDF-файлы, они имеют плохие имена, как {4E92C2C7-0A9B-4F77-99CC-D1F03B871564} .pdf У меня также есть один индексный файл в формате PDF с двумя colums, 1 с именем файла, другое с кратким описанием.

Пример: Airol 1 литр (Airol) (Sikkerhetsdatablad) = {4E92C2C7-0A9B-4F77-99CC-D1F03B871564} .pdf

Можно ли написать программу, которая выглядит в колонке 2, и, если файл найдено, переименуйте его в поле в столбце 1.

+0

Да, это возможно. Что вы пробовали? – jeb

+0

На данный момент я делаю это вручную, но я вижу, что многие из этих zip-файлов появятся в будущем. Я только начал изучать проблему. Как бы вы справились с этим? :) –

+0

Из FAQ: 'Вопросы, требующие кода, должны демонстрировать минимальное понимание решаемой проблемы. Включите попытки решения, почему они не сработали и ожидаемые результаты. '[Ask] – jeb

ответ

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

Спасибо, знак = = между двумя столбцами. Я не знаю, как использовать python. Однако я нашел другое решение. Я просто преобразовал PDF в Excel. Сделал функцию, используя команду = CONCATENATE. Я положил значение Новое имя в A1 - И старое имя B1. Добавлен «символ в D1 и .pdf в E1. Используя этот код = (« ren »;; D1; B1; D1;« "; D1; A1; E1; D1) Скопируйте ко всему, и я закончил с ren" old name "" newname.pdf ", Скопируйте этот результат Colum в блокнот и сохраните его как bat. –

0

Extract список файлов 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 и запустить его снова.

Смежные вопросы