Как эффективно переименовать группу файлов

О сочетании клавиш проводника Ctrl + Shift + N внезапно зацепил приверженцев альтернативных файловых менеджеров. По ходу дела всплыла тема массового переименования файлов.

Евгений Генеральчик подметил, что в отличие от Total Commander, проводнику не по зубам переименование 20 тысяч файлов, например, добавление к имени файла текущей даты. Действительно, в классической серии пенальти я сам признал незаменимым сочетание Ctrl + M в TC, сфокусировавшись на функции поиска/замены.

Однако, отвечая Евгению в ВК, я заметил, что его задачу переименования решу в PowerShell и даже ванлайнером. Написал и подумал – надо все-таки решить, а то вдруг попросят пруфов:)

Сегодня в программе

Переименование файлов методом «поиск / замена»

Через несколько минут у меня получился такой вариант:

Get-ChildItem -Path $env:userprofile\Downloads -Filter "*.zip*" -Recurse |` Rename-Item -NewName {$_.Name -Replace "\.zip$", "-$(Get-Date -Format {yyyy-MM-dd}).zip"} -WhatIf

На самом деле в команде одна строка, а на две я ее разбил, чтобы она лучше читалась. Давайте разберем составляющие команды.

Выборка файлов

Для получения списка файлов я использую командлет Get-ChildItem . Он же gci , он же ls , он же Элла Кацнельбоген dir , а эта команда прекрасно знакома всем, кто написал хоть один батник.

  • -Path $env:userprofile\Downloads – файлы ищутся по заданному пути, т.е. в папке Downloads в профиле пользователя
  • -Filter "*.zip" – фильтруются только файлы с расширением ZIP. Впрочем, в выборку попадут также и файлы, содержащие в имени ".zip", но этим я пренебрегу. В принципе, можно не указывать параметр, а просто написать .zip .
  • -Recurse – поиск ведется рекурсивно, т.е. во всех вложенных папках. Кстати, в PowerShell 5.0, т.е. в Windows 10, у gci появился новый параметр -Depth, задающий глубину рекурсии. Например, 0 – только текущая папка, 2 – на два уровня вглубь.

Выбранные файлы по конвейеру передаются дальше для переименования.

Переименование файлов

Командлет Rename-Item тоже обладает хорошо известным псевдонимом ren . С помощью параметра -NewName задается новое имя, а в фигурных скобках стоит выражение, задающее условия переименования

  • $_.Name – для каждого переданного по конвейеру файла изменяется полное имя.Name
  • -Replace "\.zip$", "-дата.zip" – я слегка упростил конструкцию, написав дату словом, чтобы был понятен смысл аргументов оператора -Replace: ‘что ищем’, ‘на что меняем’. Здесь тонкость в том, что у -Replace первый аргумент — регулярное выражение, а не просто поиск текста. В регулярных выражениях точка означает любой символ, поэтому использование ".zip" чревато нежелательным переименованием, например, файла winzip -setup.exe.
  • "-$(Get-Date -Format {yyyy-MM-dd}).zip" – подставляем мы все-таки текущую дату в формате 2015-09-04. Формат дат я уже разбирал , а здесь хочу обратить ваше внимание на другой фокус. Выражение (в данном случае – командлет) не получится вставить просто так в аргумент оператора, но его можно поместить между круглыми скобками такой конструкции $() .
  • -WhatIf – этот стандартный параметр в переводе означает «что будет, если». Когда он добавлен в команду, ее реального выполнения не происходит, а в консоль выводится результат того, что могло бы произойти без этого параметра. Другими словами, вы можете проверить команду у себя, не опасаясь, что все архивы переименуются:)

Переименование файлов путем добавления счетчика

По ходу обсуждения в ВК выяснилось, что пример с датой надуманный, а более реальной выглядит последовательная нумерация файлов. Действительно, в TC я часто использовал очень удобный счетчик [C] для переименования графических файлов.


В PowerShell его тоже можно реализовать. Допустим, надо добавить счетчик из трех цифр в конце имени всех файлов JPG в текущей папке. Команда может быть такой:

Dir *.jpg | % {$i=1} {ren $_ -NewName ("$($_.Basename)-{0:00#}.jpg" -f $i++) -WhatIf}

С выборкой все понятно, поэтому давайте разберем переименование.

  • % — псевдоним командлета Foreach-Object , который перебирает по одному все переданные по конвейеру объекты. За ним следуют два блока скриптов в фигурных скобках { }, о которых чуть ниже.
  • {$i=1} – первый блок, в котором переменная i получает значение 1. Это нужно для счетчика, который после переименования каждого объекта будет увеличиваться на единицу с помощью $i++ .
  • ren $_ — начало второго блока для переименования каждого полученного по конвейеру объекта.
  • "$($_.Basename)-{0:0#}.png" – новое имя файла. Конструкцию $() я разбирал выше, но здесь я использую свойство Basename , т.е. имя файла без расширения (Name – имя файла с расширением).
    {0:00#} – счетчик, причем в данном случае он трехзначный, что определяется конструкцией из трех символов 00# после двоеточия. Эквивалентом будет {0:D3} , где число после D задает количество символов счетчика.

Примечание о блоках скриптов

Существует три типа блоков:

  • Begin (начало) — выполняется один раз в самом начале, до перебора элементов
  • Process (обработка) — выполняется для каждого элемента
  • End (конец) — выполняется в самом конце перебора

Командлет Foreach-Object обрабатывает блоки особым образом. Если ему указать только один блок, он воспринимает его как Process. Если два, то первый будет Begin, а второй — Process (наш случай). Если все три, то поведение стандартное: Begin → Process → End.

Дискуссия

Я не ставил перед собой задачу описать на языке PowerShell эквиваленты всех функций массового переименования Total Commander. Думаю, что это вполне возможно, а степень успеха зависит лишь от вашего уровня владения PowerShell, .NET и гуглояндексом. Вопрос лишь в том, насколько это целесообразно.

Графический интерфейс TC понятнее, нагляднее и не требует специальной подготовки. Однако бывают ситуации, когда вы не сможете воспользоваться любимым инструментом. Например, его нет в системе, а установить нельзя, поскольку ПК изолирован от внешней среды или это запрещено политикой организации. Если вы не ленитесь расширять свой кругозор и не упускаете случая поковырять PowerShell, вы с честью выйдете из такой ситуации.

Кстати, в ближайших записях я познакомлю вас с некоторыми новыми возможностями платформы PowerShell 5.0, включенной в Windows 10.

Расскажите в комментариях , какую задачу вы в последний раз решали:

  • с помощью PowerShell или другого скриптового языка
  • средства для массового переименования в любимом файловом менеджере

Я благодарю Василия Гусева за ценные дополнения, которые я добавил в статью после публикации.


По мере освоения компьютерной грамотности перед Вами может встать вопрос о переименовании файла с расширением. Казалось бы, что в этом сложного?

Имя файла – это, например, prim.doc, то есть сначала имя файла (prim), а после точки следует расширение имени файла (.doc). Windows считает расширением только последние 3-4 символа после имени файла.

Как изменить имя файла в Windows

Чтобы устранить эту проблему, нужно вернуть файлу его “старое” расширение. Но будьте внимательны и не перепутайте. Если Вы дадите расширение “.exe” файлу, который не является программой, то последствия могут быть плачевные. Одно из таких последствий – зависание операционной системы.

Как включить режим просмотра расширений имени файла в Windows XP

По умолчанию Windows скрывает расширения файлов.

Такой режим не всегда удобен. Но есть и плюсы – Вы случайно не смените расширения файлов.

Чтобы включить режим просмотра расширений имени файла в Windows XP, зайдите в окно «Мой компьютер».

Сверху в меню окна найдите «Сервис» – «Свойства папки» – «Вид» и снимите там галочку «Скрывать расширения для зарегистрированных типов файлов» (привожу настройки для Windows XP). После того, как галочку сняли, нажимаем на «ОК». После этого расширения у файлов станут видны.

Просмотр расширений в Windows 7

В Windows 7, чтобы увидеть расширения для зарегистрированных файлов, надо пройти путь “Пуск” – “Панель управления” – “Параметры папок”:


Windows 7: как увидеть расширения файлов на своем ПК

Открыть вкладку “Вид”, снять галочку напротив опции «Скрывать расширения для зарегистрированных типов файлов» и нажать “ОК”. Расширения файлов в Windows 7 после этого перестанут быть для Вас “тайной за семью печатями”.

Массовое переименование файлов это далеко не простая задача. Пользователи зачастую просто не знают что делать, когда возникает необходимость переименовать большое количество файлов. Делать это вручную долго и утомительно. Поэтому для решения таких задач лучше использовать специальные программы для массового переименования файлов.

Advanced Renamer — бесплатное решение для массового переименования файлов

В данной статье мы рассмотрим программу , которая позволяет быстро и без лишних хлопот выполнять массовое переименование файлов. С ее помощью можно быстро переименовать любое количество файлов. Главными преимуществами Advanced Renamer перед аналогичными программами являются: бесплатность, русскоязычный интерфейс и широкие возможности по настройке массового переименования файлов.

Интерфейс программы разделен на две части. В левой части окна Advanced Renamer размещается список правил (методов), которые используются для переименования файлов, а в правой части список файлов и папок. Список файлов находится на вкладке «Переименовать файлы », а список папок на вкладке «Переименовать папки ».

Как переименовывать файлы с помощью Advanced Renamer

Для того чтобы добавить файлы или папки для массового переименования вы можете воспользоваться кнопкой «Добавить » или просто перетащить нужные файлы в окно программы.

После того, как вы добавили файлы можно приступать к настройке методов переименования. Для этого нажимаем на кнопку «Добавить метод » и выбираем подходящий пункт. Настраивая методы переименования в правой части окна, в колонке «Новое имя файла », вы можете наблюдать будущие названия файлов.

Здесь доступны такие методы переименования файлов:

  • Новое имя. Файлам задаются новые имена. Можно выбрать один из способов генерации новых имен.
  • Регистр. Изменения регистра названия файлов.
  • Перемещение. Перемещение символов в названии файла из одной позиции в другую.
  • Удаление. Удаление символов из названия файла.
  • Удаление шаблона. Удаление символов из названия файла согласно указанному шаблону.
  • Пере нумерование. Изменение номеров в названии файла.
  • Замена. Замена фраз в названии файла.
  • Добавление. Добавить текст в название файла.
  • Список. Переименование файлов согласно новому списку названий.
  • Обрезка. Удалить нежелательные символы из названия файла.

Кроме этого для файлов можно выполнять изменение атрибутов и дат создания/открытия/изменения. Также есть возможность переименовывать файлы с использованием алгоритма написанного на JavaScript. Существующие методы переименования файлов можно комбинировать любым способом.

Пример использования программы Advanced Renamer

Для примера выполним массовое переименование файлов с использованием метода «Новое имя ». Для начала загружаем в программу список файлов, которые мы планируем переименовать.



После того как все настроено можно нажимать на кнопку «Старт » для того чтобы запустить процесс переименования файлов.

На днях, блуждая по интернету, я встретил новую версию своего давнего и верного помощника - программы ReNamer, которая стала моим незаменимым инструментом при массовом переименовании файлов . Действие это рутинное, которое мы можем выполнять и по нескольку раз на день. Каждый из нас решает сию задачу по-своему, например, встроенными средствами операционной системы, не испытывая при этом особых проблем.

Вот-вот, - скажете вы - велика проблема, о чем тут и говорить-то! Хорошо, конечно, когда переименование допускает использование символов маски, и - добавляю - хорошо, если вы умеете пользоваться маской. Но встречаются ситуации, когда применить маску достаточно сложно или вообще невозможно. Казалось бы, тут остается только один выход - переименовывать "ручками" каждый файл отдельно. Ан нет - есть выход, который предлагает очень функциональная, не требующая установки и к тому же бесплатная программа Дениса Козлова ReNamer, о которой и пойдет речь в данной статье.

Скачать программу можно как на компьютерном портале Softodrom.ru , так и на сайте разработчика.

Программа предоставляет пользователю все мыслимые способы группового переименования файлов. Во всяком случае, у меня не хватило фантазии придумать что-нибудь такое, с чем программа не справилась бы! Думаю, что она является незаменимым помощником администраторам и прочему компьютерному люду, а также преподавателям, авторам и иже с ними. Кстати, на что я сразу обратил внимание при обнаружении новой версии ReNamer, так это на появление российской локализации программы. И хотя я и не испытываю особого дискомфорта при работе с английским интерфейсом, но все же, знаете, свой язык он как-то значительно роднее, а - главное - понятнее...

При первой загрузке программы она предложит вам открыть и, соответственно, ознакомиться с кратким руководством по работе (Quick Guide). Если вы имеете базовые понятия английского языка, то советую принять это предложение. Честно говоря, я не часто встречал настолько толковое и при этом краткое описание работы с программой!

Вместе с тем не могу не заметить, что, понимая автора, который ориентирует свое детище на максимально широкий круг пользователей и использует для этого английский язык , он мог бы "сварганить" аналог руководства и на русском, поскольку автор - программист из Тольятти. Кстати, хорошо уже, что российская локализация программы появилась, а то в предыдущих версиях и ее не наблюдалось:). Правда, появилась она только в прошлом году, причем выполнил ее даже и не автор(!) Надеюсь, что автор не шибко будет обижаться на меня за критику, поскольку в работе программа действительно очень хороша.

Идеология программы заключается в создании пользователем правил, согласно которым и происходит переименование файлов. Правила позволяют изменять префиксы и суффиксы программ, заменять, добавлять и удалять части текста в наименовании файлов, добавлять в названия порядковые номера и пр.

Поэтому и само окно программы состоит из двух частей: верхняя - формирование правил переименования файлов, нижняя - выбор файлов. Соответственно, программа имеет и две группы кнопок, расположенных на отдельных панелях: верхняя - для работы с файлами и нижняя - для работы с правилами.


Выбор файлов

Выбор файлов для переименования предельно прост. На верхней панели инструментов щелкаем кнопку "Доб. файлы". Если переименованию подлежат все файлы в папке, то используем инструмент "Доб. папки". Выбранные файлы отображаются в нижней части окна. Для удаления файлов используем общепринятые приемы выделения, после чего на списке файлов вызываем контекстное меню и выбираем из него пункт "Удалить выделенные".


Создание правила

На второй (нижней) панели инструментов в верхнем окне щелкаем кнопку "Добавить" ("Добавить новое правило"), после чего появляется окно "Добавить правило", в котором и происходит формирование правила, по которому будет осуществляться переименование файлов. Для запоминания сформированного правила щелкаем в окне большую кнопку "Добавить правило".

Для редактирования правила осуществляем двойной щелчок на его имени.

Для удаления правила на второй панели инструментов следует щелкнуть кнопку "Удалить".

Рассмотрим примеры формирования некоторых типов правил.


Заменить

  1. Из списка названий правил выбираем "Заменить".
  2. В поле "Найти" определяем часть имени, которую нужно изменить. При этом не используем символ "*".
  3. В поле "Заменить" вводим символы, которыми будет заменяться текст в поле "Найти".
  4. В группе "Совпадения" определяемся с количеством замен в именах.



Удаление

Для удаления в средине имени части текста создаем такое правило.

  1. Из списка названий правил выбираем "Удалить".
  2. В поле "Начиная с" определяем позицию, с которой необходимо начать удаление текста в имени.
  3. В поле "До" определяем количество удаляемых в именах файлов символов.
  4. Для отключения выполнения действий с расширениями включаем действие "Пропускать расширения".
  5. Сохраняем правило, щелкнув кнопку "Добавить правило".



Создание числовых последовательностей (индексировать)

Иногда бывает необходимо изменить наименования файлов Имя1, Имя2, Имя3 так, чтобы их имена содержали числовую последовательность с определенным приростом, например, увеличиваясь на "5": Имя11, Имя26, Имя311. Процедура создания правила такова.

  1. Из списка названий правил выбираем "Индексировать".
  2. Выбираем вариант "Последовательно".
  3. Задаем начальное значение числовой последовательности: "Начать с:".
  4. В поле "Шаг" задаем прирост (шаг) числовой последовательности, с которым будет изменяться числовое значение.
  5. В поле "Куда вставить:" определяем место в имени файла, где будет вставляться числовая последовательность. При этом пользователь имеет возможность задать:
    • Позиция: определяется позиция, начиная с которой в имени файла будет вставляться число. Если, например, для нашего примера установить вторую позицию, то имена файлов будут таковы: И1мя1, И6мя2, И11мя3.
    • Префикс: в начале имени файла. В этом случае имена файлов будут представлять такую последовательность: 1Имя1, 3Имя2, 5Имя3.
    • Суффикс: в конце имени файла. Имена файлов будут такими: Имя11, Имя26, Имя311.
  6. Установка флажка для поля-метки "Дополнять нулями до:" позволяет задать одинаковое количество позиций для всех элементов числовой последовательности. Например, установив в данном поле значение "2" и задействовав вариант "Суффикс" для нашего примера получим такие имена: Имя101, Имя206, Имя311.
  7. Для отключения выполнения действий с расширениями включаем действие "Пропускать расширения".
  8. Сохраняем правило, щелкнув кнопку "Добавить правило".



Определение нескольких правил

Система позволяет применять к именам файлов сразу несколько правил. Главное тут - не запутаться самому с именами, которые должны получиться, поскольку применение правила на каком-то этапе может повлечь создание имени, совпадающего с именем на предыдущем этапе. Впрочем, система об этом сразу же предупредит.

Во избежание таких ситуаций, следуйте простому правилу: не применяйте все правила сразу, а делайте это последовательно, снимая или устанавливая флажки в первой графе, предшествующей названию правила.


При этом пользователь может не только добавлять и удалять правила, но и менять их местами, используя инструменты, расположенные в верхней части окна с правилами.

И еще. Правила используются строго последовательно, именно в том порядке, в котором вы их создавали. При необходимости изменить их последовательность воспользуйтесь кнопками "Вверх" и "Вниз", которые расположены на второй панели инструментов.


И последнее. Переименование

Для того, чтобы посмотреть, что же у нас получается, щелкаем кнопку "Предпросмотр" на панели инструментов, после чего в нижней части окна в графе "Новое имя" отобразятся имена, сформированные по заданным правилам. Собственно говоря, никаких действий предпринимать вообще не надо, если сначала выполнять действие выбора файлов, а уже после этого - формирования правил. В этом случае добавление или изменение правила автоматически влечет отображение файлов с новыми именами.

И, наконец, последний шаг: непосредственно переименование. Щелкаем кнопку "Переименовать" и любуемся нашей работой, не забывая выразить респект автору за удобнейший и к тому же бесплатный инструмент.

И самое последнее. Как следует из аннотации к программе, пользователь имеет возможность работать с ID3v1, ID3v2 и EXIF, а также использовать пакетное переименование папок. А кроме этого, имеется множество пользовательских настроек шаблона переименования.

Валерий ФЕТИСОВ



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: