2014-12-05 5 views
0

У меня есть почти 2000 файлов, которые мне нужно переименовать.Переименование нескольких файлов

Файлы именуются в следующем формате: PART1 # PART2 # PART3.pdf

Я хотел бы пакетного переименования файлов, так что PART2 перемещается до того PART1 например PART2 # PART1 # PART3.pdf

PART 1 = A random document reference e.g. 124244 
PART 2 = A reference number e.g. 12-12434-A 
PART 3 = A short description e.g. Part 1 

Символ # разделяет каждую из этих частей.

Есть ли простая утилита, которую я могу использовать, чтобы внести это изменение?

ответ

0

Используйте пакетный файл

@echo off 
    setlocal enableextensions disabledelayedexpansion 

    cd /d "c:\where\thefiles\are" 

    for /f "tokens=1,2,* delims=#" %%a in (' 
     dir /b /a-d *.pdf ^| findstr /r /b /e /i /c:"[^#][^#-]*#[^#][^#]*#..*\.pdf" 
    ') do echo ren "%%a#%%b#%%c" "%%b#%%a#%%c" 

Что делает этот код является

  1. Получить список файлов: команда dir с просьбой о .pdf файлы в голом формате без папок

  2. Фильтры для получения только выделенных файлов: findstr команда, поиск регулярного выражения, которое соответствует началу и концу строк, игнорируя регистр. Выражение, которое протестировано против имен файлов, это: символ non #, за которым следует последовательность символов не # или - (чтобы избежать переименования файлов дважды), за которым следует #, за которым следует не # и последовательность не- # символов, за которыми следует # и любой последовательность символов, заканчивающейся в .pdf

  3. команда for разделяют имена, используя в качестве маркеров # разделителя и для каждого из них сделать переименование.

Операции переименования повторяются только на консоль. Если выход правильный, удалите команду echo

+0

Не могли бы вы дать мне более подробную информацию о том, как использовать этот подход. Я сохранил вышеуказанный код как convert.bat и изменил путь каталога к правильному расположению папки. Когда я запускаю скрипт, ничего не происходит, и файл не переименовывается. – user3220812

+0

@ user3220812, как указано в ответе, файлы не переименовываются. В консоли будут показаны операции переименования. 'echo' нужно удалить. Если вы не видите вывод на консоль, то ваши файлы не будут следовать за именованием, указанным в вопросе, то есть: последовательность чисел, #, последовательность символов, #, другая последовательность символов и расширение .pdf. Это верно? –

+0

@NC ND - это пример одного из имен файлов: 3326646 # 95-00770-REM # NULL.pdf. Я удалил эхо, но переименование не происходит. Я подозреваю, что это может быть связано с тире в имени файла (извините, я не упоминал об этом ранее). – user3220812

-1

Вы можете переименовать несколько файлов за один раз, просто выберите весь файл и нажмите кнопку F2 на клавиатуре и укажите имя файла только «ЧАСТЬ». Все файлы будут переименованы автоматически. В соответствии с этой ЧАСТЬ (1), ЧАСТЬ (2) , часть (3) и т.д.

+0

Часть 1, часть 2 и часть 3 различны для каждого файла, и данные в имени файла должны быть сохранены, поэтому этот подход не будет работать. Спасибо за ваше предложение. – user3220812

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