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

Обновлено: 07.07.2024

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

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

нашел как переименовывать просто файлы:

но никак не могу понять, как удалять символы с конца имени файла в данном случае.

alex_diablo

Активный пользователь

вобщем, поковырялся и сделал вот так:


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

Dragokas

Very kind Developer
alex_diablo, все Вы нормально сделали.
Двойное раскрытие переменной можно организовать так:

alex_diablo

Активный пользователь

а как сделать, чтобы не нужно было высчитывать количество символов? ну вот например, в имени файла есть 4 символа нижнего подчеркивания.
и нужно все символы, которые после последнего знака подчеркивания - убрать, т.е. файл 456123agents_preview_pack_004_BC15F9146A415178B95BE92EB26DD92F-56.unity3d
после переименования должен иметь вид: 456123agents_preview_pack_004.unity3d

пробовал задействовать вот этот вариант:

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

надеюсь понятно объяснил.

Dragokas

Very kind Developer
А не получится ли так, что среди тех файлов, что нужно переименовать попадется
456123agents_preview_pack_004
у которого соответственно урежется часть _004
?

alex_diablo

Активный пользователь
alex_diablo, все Вы нормально сделали.
Двойное раскрытие переменной можно организовать так:

а в данной версии кода хотелось бы всю команду

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

Dragokas

Very kind Developer
2. Можно как-то привязаться к кол-ву знаков подчеркивания,
или может получится, что таких знаков = 3, а строку все равно нужно урезать до 2-ух знаков подчеркивания ?

alex_diablo

Активный пользователь
А не получится ли так, что среди тех файлов, что нужно переименовать попадется
456123agents_preview_pack_004
у которого соответственно урежется часть _004
? нет. т.к. заведомо известно, что в одно время в одной папке находятся файлы, именнованные все по одному шаблону. но в разное время количество разделителей может быть разное, поэтому и нужна возможность задать количество разделителей, чтобы подстраивать скрипт.

alex_diablo

Активный пользователь
2. Можно как-то привязаться к кол-ву знаков подчеркивания,
или может получится, что таких знаков = 3, а строку все равно нужно урезать до 2-ух знаков подчеркивания ?

поясню задачу: есть файлы вида: agents_preview_pack_002_1171C57D8808635BA4F8AFAEA5149D8D.unity3d
agents_preview_pack_004_1171C57D8808635BA4F8AFAEA5149D8D.unity3d
agents_preview_archive_010_1171C57D8808635BA4F8AFAEA5149D8D.unity3d

вот в них нужно убирать хеш (символы вида 1171C57D8808635BA4F8AFAEA5149D8D)

т.е. после манипуляций переименования все файлы должны принять вид:
agents_preview_pack_002
agents_preview_pack_004
agents_preview_archive_010

С помощью командной строки можно выполнять любые операции с файлами и папками. Например, их можно редактировать, копировать, перемещать или переименовывать. В данной статье мы рассмотрим именно переименования. Здесь вы узнаете, как переименовать файл или папку в командной строке Windows 10 или Windows 7.

Команда RENAME (REN)

Для переименования файлов и папок в командной строке Windows 10 или Windows 7 нужно использовать команду REN (или ее синоним RENAME). Данная команда принимает путь к файлу, который нужно переименовать, и новое название. Синтаксис команды выглядит следующим образом:

[<drive>:] Диск, на котором расположен файл или каталог, который нужно переименовать.
[<path>] Путь к файлу.
<filename1> Имя файла
<filename2> Новое имя для файла.
  • Команда rename позволяет использовать подстановочные знаки (* и ?). С их помощью можно переименовать сразу несколько файлов. Замененные подстановочными знаками символы будут идентичными символам из исходного имени.
  • Новое имя (<filename2>) должно быть уникальным. Если такое имя уже занято, то будет выведена ошибка.
  • Команду rename нельзя использовать для перемещения файлов в другую папку или на другой диск.

Примеры переименования

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

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

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

переименования сразу нескольких файлов

Таким же образом переименовываются и папки.

переименовывать папки

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

пробелы в названии файла

При необходимости можно указать полный путь к исходному файлу, который нужно переименовать. Например, для того чтобы переименовать документ « new name.txt » в папке « d:\temp\ » нужно выполнить следующую команду:

полный путь к исходному файлу

Обратите внимание, если вы создаете командный файл (*.bat, *.cmd), то для корректного переименования файлов или папок с кирилличными символами, текст команд должен быть сохранен в DOS-кодировке (CP866) .

Akelpad

Сохранить в такой кодировке можно с помощью текстового редактора Akelpad (скачать).

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

Рано или поздно почти каждый пользователь сталкивается с тем, что ему требуется выполнить массовое переименование группы файлов: иногда задача простая — например, нужно дать им имена с номерами по порядку, иногда — более сложная: к примеру, нужно изменить имена группы файлов таким образом, чтобы они имели в имени номер, дату создания, какую-либо дополнительную информацию.

Всё это можно реализовать в том или ином виде, для части сценариев достаточно встроенных средств Windows 10, 8.1 или Windows 7, иногда лучше использовать специальные программы для массового переименования файлов и папок. И те и другие методы будут рассмотрены в этой инструкции. Кстати, функции переименования группы файлов есть в наборе полезных утилит Microsoft PowerToys для Windows 10.

Advanced Renamer

Advanced Renamer — бесплатная программа для массового переименования файлов и папок с использованием настраиваемых шаблонов, которая может очень многое, если с нею разобраться. На официальном сайте доступна на русском языке как в виде установщика, так и portable версии (ZIP-архив, не требующий установки). Приведу пример использования Advanced Renamer для массового переименования группы файлов:

  1. Есть папка фотографий (но метод подойдет и для любых других типов файлов), снятых в одно время, но на разные устройства (фотоаппарат и смартфон). Часть имеют в качестве имени дату и время без пробелов, часть — номер снимка, сделанного фотоаппаратом. При этом имя файла и расширение файлов с камеры написано в верхнем регистре. Задача — привести имена группы файлов к удобному виду.
  2. Запускаем Advanced Renamer, затем либо перетаскиваем файлы для переименования в список по центру интерфейса, либо нажимаем кнопку «Панель папок», находим папку с нужными файлами и нажимаем кнопку «Добавить». Откроется окно, где можно задать параметры добавления: в моем случае всё оставляю как есть: нужно переименовать все файлы.
  3. Следующий этап — нажать «Добавить метод» в панели слева и выбрать «Новое имя» (возможны и иные методы, о них далее), чтобы определить, как именно будут переименовываться файлы. Здесь начинается самое интересное. В качестве новых имен файлов мы можем использовать предопределенные в программе теги, позволяющие легко подставлять в новые имена файлов нужную информацию. При необходимости вы можете нажать «Справка по тегам», чтобы получить более подробную информацию (правда, на английском) на официальном сайте. Но уже из краткого описания каждого тега должно быть примерно ясно, что именно они означают. Например, если в поле «Новое имя» в настройках метода я введу:то получу в результате имена файлов видаПричем дата съемки будет браться не из даты изменения файла (что тоже можно сделать), а из данных EXIF, записанных камерой.
  4. Чтобы у файлов не получилось двойное расширение, при его смене в поле «Применить к» нужно выбрать «Имя и расширение», а не просто «Имя». Если вы не меняете расширение, то оставьте этот параметр со значением по умолчанию (в этом случае шаблон переименования не будет применяться к расширениям файлов).
  5. Какие имена файлов получатся после переименования вы можете наблюдать сразу на центральной вкладке программы ещё до запуска процесса массового переименования.
  6. Чтобы приступить, достаточно нажать кнопку «Запустить» и подтвердить запуск переименования. Если нужно не просто переименовать, а скопировать или переместить файлы в другое расположение, в поле «Пакетный режим» вверху окна программы выберите соответствующий пункт.
  7. В результате получим группу файлов, переименованных по заданному нами шаблону.

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

Также при переименовании можно использовать не единственный шаблон, а сразу несколько (отмечаем соответствующие шаблоны, и они будут применяться в том порядке, в котором расположены в столбце «Методы переименования»): например, первый изменяет имя, второй — регистр в имени файлов, третий — удаляет «мусорные» символы из имени файла (для этого используем метод «Замена»).

Я привел лишь простой пример использования программы, но может она и многое другое: к примеру, вы можете сохранить файл шаблонов, а затем запускать переименование нужной группы файлов по нужному шаблону из командной строки, импортировать список файлов и новых имен из таблиц CSV, массово изменять атрибуты файлов, задавать случайные имена файлов, оптимизировать имена для использования в сети (или превратить кириллицу в транслитерацию), использовать информацию EXIF, данные тегов ID3, видео, GPS и не только.

Чтобы познакомиться с некоторыми готовыми шаблонами, можете нажать кнопку «Открыть» в методах переименования и посмотреть один из 4-х предопределенных в Advanced Renamer шаблонов и как именно они устроены.

Переименование группы файлов средствами Windows 10, 8.1 и Windows 7

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

Переименование нескольких файлов в Проводнике Windows

Сначала о простом ручном переименовании в проводнике: вы можете выбрать файл, а затем выбрать в контекстном меню пункт «Переименовать». Еще быстрее будет нажать F2 после выделения файла. Не все знают, но, если после ввода нового имени файла нажать клавишу Tab, автоматически будет начато переименование следующего в папке файла.

Еще один вариант, подойдет мало для чего, но знать о нём имеет смысл: выбираем несколько файлов в папке в проводнике (мышью, либо удерживая Shift при выборе, либо удерживая Ctrl и нажимая мышью по отдельным файлам). После этого нажимаем F2 (или выбираем «Переименовать» в контекстном меню) и вводим имя для того файла, изменение имени которого начнется. Нажимаем Enter по окончании.

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

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

Возможности переименования в командной строке

Командная строка также позволяет выполнять переименование группы файлов с помощью стандартной команды ren (для начинающих: Как запустить командную строку).

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

Примеры использования команды для переименования группы файлов, используя которые можно составить и свою команду:

В результате выполнения все файлы в текущей папке (на скриншоте выбрана командой cd путь_к_папке) с расширением .jpg приобретут расширение .jpg. Значок «зведочка» в команде может заменять любой набор символов (как один символ, так и сразу несколько).

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

Команда переименует все без исключения файлы в папке и приведет их к виду: file-старое_имя_файла.old (старое расширение при этом исчезнет).

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

Еще один инструмент Windows, который может быть использован для массового переименования файлов и папок — Windows PowerShell. Самый быстрый способ его запуска — использовать поиск в меню пуск (панели задач) или, если у вас Windows 10 — нажать правой кнопкой мыши по кнопке Пуск и выбрать нужный пункт меню в контекстном меню (Другие способы: Как запустить Windows PowerShell).

В PowerShell есть команда Rename-Item для переименования файлов, которая при работе с единственным файлом может быть использована почти так же, как команда ren в командной строке, но благодаря возможности PowerShell использовать одни команды с другими, rename-item оказывается более функциональной. Несколько примеров:

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

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

К имени каждого файла в начале будет добавлено «Секретный файл» и пробел.

К имени каждого файла будет добавлено нижнее подчеркивание и дата в формате День-Месяц-Год.

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

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

  1. Выделите нужные файлы (используйте Shift и стрелки клавиатуры, правым кликом мыши, Ctrl+выбор мышью).
  2. Нажмите Ctrl+M или выберите в меню «Файл» — «Групповое переименование файлов».
  3. Задайте параметры переименования в разделе «Маска для имени файла», используя предложенные маски, замены, изменение регистра, счетчик, а также опции из раздела «Плагины». Меняя опции, в окне предварительного просмотра вы сразу будете видеть, как именно будут называться уже переименованные файлы. Для изменения расширения используйте поле «Маска для расширения».
  4. В примере выше на скриншоте набор файлов будет переименован в Photo- с последующим добавлением счетчика из трех цифр и датой создания в формате ДД-ММ-ГГГГ (доступно в плагинах), расширение будет изменено на jpeg, а имя файла переведено в нижний регистр.

Сначала использование утилиты массового переименования в Total Commander может показаться сложным для кого-то, но, если слегка разберетесь, уверен, инструмент станет полезным и удобным.

Видео инструкция

В завершение видео о массовом переименовании файлов в Total Commander и Advanced Renamer, как самых эффективных способах.

Существуют и другие программы для рассмотренных целей (например, бесплатная Bulk Rename Utility), но, на мой взгляд, приведенных выше будет более чем достаточно почти для любых задач переименования.

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

Один файл переименовать легко, можно нажать на него правой кнопкой мыши и выбрать переименовать, после чего написать нужное название. Также один файл можно переименовать с помощью клавиши F2, дополнительных настроек проводника и т.д. Но что делать, если у нас порядка 40 файлов и их все нужно переименовать? Можно тыкать на каждый по отдельности, а можно переименовать их всех одним махом.

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

2016012316-min

2016012317


3. Выделите все файлы, которые вы хотите переименовать: выбираем первый и удерживая клавишу Shift стрелкой вниз выделяем все файлы (или нажмите клавиши Ctrl+A на клавиатуре).

2016012320-min

2016012321-min

Переименование файла с помощью командной строки

С помощью командной строки можно переименовать большое количество файлов, а также с помощью той же команды можно изменить расширение всех файлов в папке.

1.Откройте командную строку в папке с нужными файлами: зайдите в папку с файлами для переименование и в адресной строке введите cmd, после чего нажмите Enter. После данных действий откроется командная строка в данной папке.

2016012322-min
2016012323-min

2016012324-min

3.Таким способом мы сменили расширение для группы файлов.

2016012325-min

Переименование нескольких файлов с помощью PowerShell

20161120-2-min

20161120-7-min

Результат на лицо 🙂

20161120-6-min

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

Переименовать группу файлов с помощью Total Commander

Если у вас установлен файловый менеджер Total Commander, то вы можете воспользоваться им для переименование большого количества файлов:

1.Откройте Total Commander.

2. Зайдите в папку, файлы которой вы хотите переименовать.

3. Выделите все файлы, которые вы хотите переименовать (с помощью клавиш Ctrl+A можно выделить всё в папке, или с помощью удерживания клавиши Shift и нажатия на стрелки).

2016012326-min

2016012327-min

Читайте также: