Массовое переименование файлов

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

Ранее уже затрагивалась тема пакетного переименования фотографий в нужной последовательности с использованием утилиты. Об этом вы можете почитать здесь. А в данном материале я расскажу о штатном способе (без использования стороннего программного обеспечения) переименования в Windows.

Пакетное переименование штатными средствами Windows

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

Процесс пакетного (группового) переименования файлов и папок в Windows

Откройте папку с файлами (или другими папками), которые необходимо переименовать в пакетном режиме.

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

Введите новое имя файла. К примеру, «work». Все выбранные файлы (или папки) будут переименованы в work с возрастающим числом в скобочках на конце. Другими словами все выделенные файлы и папки будут иметь имя work (1), work (2), work (3) и т.д.

Если вам необходимо выделить и переименовать в пакетном режиме файлы определённого формата, то вы можете воспользоваться сортировкой файлов по типу в файловом менеджере Windows.

Активация сортировки по типу файла в файловом менеджере Windows

Для этого кликните правой клавишей мышки по свободной области в окне файлового менеджера Windows и в появившемся контекстном меню выберите Сортировка -> Тип.

Помимо прочего, имеется возможность сортировки по дате изменения и размеру.

Краткий итог

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

Если у вас остались вопросы, вы можете задать их в комментариях.

it-actual.ru

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

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

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

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

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

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

  • -Path $env:userprofileDownloads – файлы ищутся по заданному пути, т.е. в папке 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

В 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 или другого скриптового языка
  • средства для массового переименования в любимом файловом менеджере

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

www.outsidethebox.ms

Переименование встроенными средствами Windows

В Проводнике Windows есть возможность массового переименования файлов. Для этого надо выделить нужные папки, нажать на F2, ввести новое название файла, например, test, нажать Enter, и все файлы станут такими:

test.jpg, test (1).jpg, test (2).jpg и т.д. Расширение так сменить не удастся. Метод очень ограничен в своих возможностях, поэтому на нем не останавливаемся и не выделяем его в отдельный.

Откроем консоль Windows, нажав одновременно сочетание клавиш Win + R. Клавиша Win находится рядом с пробелом, на ней изображен флажок Windows.

Появится окно «Выполнить»:

cmd

Пишем в строке «Открыть:» слово cmd, как на картинке, нажимаем ОК.

Откроется окно консоли Windows. Пишем в нем cd [путь до папки с файлами для переименования], нажимаем Enter. У меня в этой папке лежит несколько файлов с расширением jpg, которые мне необходимо «переделать» в файлы txt, поэтому далее я пишу команду

ren *.jpg *.txt

rem переименование файлов

Теперь у меня в этой папке файл с расширением txt, как и хотелось.

Плюсы данного решения:

  • Ничего не надо скачивать из Интернета и устанавливать, все уже есть в Windows
  • Весьма быстрое решение

Минусы данного решения:

  • Требует пусть и небольшой, но все же имеющейся квалификации работы за компьютером у пользователя

Рассмотрим другой вариант.

Переименование файлов сторонними программами

Один из самых распространенных вариантов — это переименование при помощи Total Commander.

Открываем данную программу, переходим в нужную нам папку.

Total Commander

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

Вариант 1. Простая смена расширений у файлов папки

В правой части окна, приведенного на картинке выше, также переходим в ту папку, в которой необходимо сменить расширение файлов.

total tommander переименование файлов

Кнопкой Insert выделяем нужные файлы или нажимаем сочетание клавиш Ctrl + A, чтобы выделить все файлы, и нажимаем кнопку F6. Откроется следующее окно:

Total Commander F6 перемещение переименование

В конце первой строки в *.* необходимо заменить последнюю звездочку на то расширение, на которое нам надо заменить расширение существующих файлов, в моем случае *.txt.

Total Commander F6 смена расширения

Нажимаем ОК, расширения у выбранных файлов заменились.

Если нам необходимо более хитрое переименование, то можно попробовать вариант 2.

noservice.ru

Групповое переименование файлов в Windows

В операционной системе Windows вы можете одновременно переименовать выбранную группу файлов.

Кстати: в Mac OS также работает эта схема, но она немного продуманнее, и на выходе получаются именно те имена файлов, что вы и задумывали.

Только не подумайте, что Windows делает всё плохо. Но, мне не нравится его автоматическая нумерация в скобках.

Для того чтобы переименовать сразу несколько файлов, нужно сначала выделить эти файлы (Ctrl+A – выделить всё; Ctrl+ левая кнопка мышки – выделение отдельных файлов).

Групповое переименование файлов, выделение файлов

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

Групповое переименование файлов, переименовать

Вводите желаемое имя и нажимаете клавишу «Enter».

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

Групповое переименование файлов, готовые файлы в Windows

Совет: если вы создаёте файлы для интернета, присваивайте имена латинскими буквами и не слишком длинные.

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

Групповое переименование файлов в Total Commander

Этот способ мне нравится больше, и именно им я пользуюсь постоянно. Принцип здесь тот же, нужно выделить файлы и переименовать их с заданными параметрами.

Итак, выделяем файлы (Ctrl+A) и вызываем инструмент «Групповое переименование» (Ctrl+M)

Групповое переименование файлов, переименование в TC

Откроется новое окно, где можно настроить параметры переименования, то есть присвоит новое имя, добавить счётчик, дату, время. А также можно изменить тип файла и создать шаблоны.

Для обычного группового переименования будет достаточно присвоить новое имя и добавить счётчик:

newname-[C]

Выбрав параметры, нажимаете кнопку «Выполнить» и смотрите на результат.

Групповое переименование файлов, выполнение команды

Ваши файлы переименованы.

Групповое переименование файлов, переименованные файлы в TC

У этого способа намного больше возможностей, но даже самое простое применение пройдёт быстро и гладко. А ещё вы можете использовать TC для сравнения файлов по содержимому. Я уверен, эта функция тоже будет вам полезна.

Видеоурок по теме

Друзья, эти способы позволят быстро переименовывать сколько угодно файлов. И не тратить время на каждый файл, а сделать пакетным способом.

Желаю вам удачи!

С уважением, Максим Зайцев


    Похожие статьи по теме:

  • 4 способа сравнить два файла по содержимому

1zaicev.ru

You May Also Like

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.