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

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

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

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

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

Интерфейс Windows (Проводник) и командная строка позволяют массово переименовывать файлы, добавляя числовой суффикс (1), (2), (3) и так далее.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

В случае Проводника просто выберите элементы для переименования (CTRL + A, чтобы выбрать их все), затем измените имя первого файла, нажав клавишу F2 или кнопку «Переименовать».

Из традиционной командной строки вы можете внести еще несколько изменений, но ничего даже отдаленно не сравнимого с тем, что вы можете сделать с помощью PowerShell.

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

Как запустить PowerShell

Чтобы получить доступ к PowerShell, просто нажмите комбинацию клавиш Windows + X, затем выберите запись Windows PowerShell.

В Windows 10, если вы все еще видите командную строку в меню, просто введите «Заменить командную строку на Windows PowerShell» в поле поиска меню «Пуск» и включите параметр «Заменить командную строку на Windows PowerShell» при нажатии правой кнопкой мыши в левом нижнем углу или вы нажимаете клавишу Windows + X.

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

Чтобы открыть PowerShell и сразу перейти в папку, открытую в проводнике, мы предлагаем вам, удерживая нажатой клавишу SHIFT, затем щелкнуть правой кнопкой мыши в свободной области папки и, наконец, выбрать Открыть окно PowerShell здесь.

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

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

1) Правильное использование переменных среды с PowerShell

Из окна Powershell с помощью команды cd можно перейти в папку, содержащую файлы, которые необходимо переименовать (пример: cd C:UsersMicheleDocumentstest).

Также можно использовать переменные окружения: %userprofile% в PowerShell становится $env:userprofile.

Пример: cd $env:userprofileDocuments

2) Заменить текст в названии серии файлов

Чтобы переименовать серию файлов, заменив символ или последовательность символов, вы можете ввести следующее:

реж | Rename-Item -newname {$_.Name -replace «string_to_search», «строка для замены»}

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

В примере на рисунке убираем строку Slide1 из названий всех файлов в текущей папке.

3) Найдите файлы, содержащие указанный термин, и замените одну часть имени на другую

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

Get-ChildItem -Filter «*term*» -Recurse Rename-Item -newname{$_.Name -replace «строка_поиска», «строка замены»}

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

Пример:
Get-ChildItem -Filter «*sesamo*» -Recurse rename-item -newname {$_.name -replace «TEST_»,»OK_» }
Он заменяет строку TEST_ на OK_ только для тех файлов, которые в любой части своего имени содержат термин «сезам».

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

Если вместо этого вы хотите переименовать серию файлов и добавить к ним префикс, просто введите следующее:

реж | Rename-Item -NewName {«PREFISSO_» + $_.Name}

Если вы хотите вместо этого добавить суффикс, просто используйте:

реж | Переименовать-Элемент -NewName {$_.Name + «_SUFFISSO»}

Другая информация также может быть объединена. Например, следующий оператор добавляет префикс имени папки ко всем хранящимся в ней файлам:

реж | Rename-Item -NewName {$_.Directory.Name + «_» + $_.Name}

Изменить расширение набора файлов

Чтобы переименовать набор файлов, изменив их расширение, вы можете использовать следующее:

Get-ChildItem *.txt | Переименовать-элемент-новое имя {$_.имя-заменить ‘.txt’,’.log’}

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

Массовое переименование файлов и присвоение каждому из них порядкового номера

Чтобы последовательно переименовывать файлы и чтобы PowerShell добавлял к их имени порядковый номер, мы предлагаем ввести в командной строке следующее:

$ № = 1
ты | %{Переименовать-Элемент $_ -NewName («FOTO_{0}.jpg» -f $nr++)}

Переменной $nr необходимо присвоить номер, с которого должен начинаться счетчик. Например, если написать $nr=9, то первому переименованному файлу будет присвоено имя FOTO_9.jpg, второму — FOTO_10.jpg и так далее.

Что делать, если вы хотите убедиться, что файлам присваивается возрастающий номер в виде 01, 02, 03… и так далее или 001, 002, 003, … в зависимости от количества файлов в папке?
Вы можете блестяще решить проблему, используя следующую команду:

$идентификатор=1; $ преф = «ФАЙЛ_»; $files=gci -Путь «.*.jpg»; $nfiles=($files.count.tostring()).length; $ файлы | foreach { Rename-Item -Path $_.fullname -NewName ($pref+((($id++).tostring()).padleft($nfiles) -replace ‘ ‘,’0’ ) + $_.extension) }

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

В примере командлет Get-ChildItem (gci — его аббревиатура или компактная форма, возвращающая тот же результат) извлекает список файлов JPG, хранящихся в текущей папке (очевидно, можно указать другие пути или указать другие типы файлов… ), то создается строка с числом 0 в зависимости от количества файлов в папке. Например, если у вас есть файлы от 100 до 999, у вас будет три нуля, от 1000 до 9999 — четыре нуля и так далее.

Методом padleft вы получаете новую строку заданной длины, в которой к начальной части строки добавляются нули там, где это необходимо (далее правее счетчик номера файла, обновляющийся инкрементально: $id++).

Изменяя значение переменной $id, в примере равное 1, можно изменить начальное значение счетчика.

Наконец, интересно отметить, что из окна Powershell по-прежнему можно использовать большинство команд, которые вы использовали для классической командной строки (cmd).

Чтобы закрыть окно Powershell, просто введите команду exit.

Чтобы узнать больше о возможном использовании PowerShell, мы предлагаем прочитать статью о PowerShell для примеров: что вы можете сделать.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

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

Ваш адрес email не будет опубликован.