Переименование файлов в Windows с помощью PowerShell
Быстрые ссылки
- Перед началом: как найти полный путь к файлу или папке
- Переименовать конкретный файл
- Массовое переименование с порядковым номером
- Добавить префикс или суффикс к имени файла
- Добавить отметку времени ко всем файлам в папке
PowerShell значительно упрощает переименование файлов из командной строки. Вы можете задать конкретные имена, добавлять возрастающие номера, префиксы и суффиксы, а также добавлять метки времени. Ниже — подробные инструкции для Windows 11 и Windows 10.
Перед началом: как найти полный путь к файлу или папке
Чтобы переименовывать файлы, PowerShell должен получить полный путь к вашему файлу или родительской папке. Если вы уже знаете, как это сделать — переходите к нужному разделу. Если нет — вот простой способ.
Откройте Проводник и найдите файл или папку. Удерживайте клавишу Shift, щёлкните правой кнопкой по объекту и выберите «Копировать как путь».
![/files/bd690a58-a2ef-4989-8748-4829717a5691.jpg]
Подсказка: действие скопирует полный путь в буфер обмена — теперь вы можете вставить его в команды PowerShell.
Переименовать конкретный файл
Для изменения имени конкретного файла используйте cmdlet Rename-Item. Он принимает полный путь к файлу и новое имя.
Откройте окно PowerShell и введите команду, заменив PATH на полный путь к файлу (включая расширение), MyName на новое имя и ext на исходное расширение:
Rename-Item PATH -NewName MyName.extВажно использовать исходное расширение файла, иначе файл может стать нечитаемым.
Пример: чтобы переименовать Old-Test.txt на рабочем столе в New-Test.txt:
Rename-Item "C:\Users\Username\Desktop\Old-Test.txt" -NewName "New-Test.txt"
PowerShell по умолчанию не выводит подтверждение успешного переименования — если ошибок нет, операция выполнена.
Массовое переименование с порядковым номером
Чтобы пронумеровать файлы в папке (1, 2, 3 …), используйте Get-ChildItem и ForEach-Object. Замените PATH на полный путь к папке и txt на нужный формат файлов.
Get-ChildItem PATH -Recurse -Include "*.txt" | ForEach-Object -Begin { $Counter = 1 } -Process { Rename-Item $_.FullName -NewName ("{0}_{1}" -f $Counter, $_.Name) ; $Counter++ }Если вы хотите получать номера с ведущими нулями (например, 001, 002), используйте форматное представление {0:D3}:
Get-ChildItem PATH -Recurse -Include "*.txt" | ForEach-Object -Begin { $Counter = 1 } -Process { Rename-Item $_.FullName -NewName ("{0:D3}_{1}" -f $Counter, $_.Name) ; $Counter++ }
Добавить префикс или суффикс к имени файла
Чтобы добавить текст перед именем файла (префикс), выполните:
Get-ChildItem PATH | Rename-Item -NewName {"PREFIX" + $_.Name}Чтобы добавить текст после имени (суффикс), сохранив расширение:
Get-ChildItem PATH | Rename-Item -NewName {$_.BaseName + "SUFFIX" + $_.Extension}Совет: используйте кавычки, если префикс/суффикс содержит пробелы.
Добавить метки времени ко всем файлам в папке
Чтобы прикрепить текущую дату и время к именам файлов, выполните команду ниже (замените PATH):
Get-ChildItem PATH -Recurse -Include "*.*" | ForEach-Object { Rename-Item -Path $_.FullName -NewName "$($_.DirectoryName)\$($_.BaseName)_$(Get-Date -F yyyy-MM-dd_HH-mm)$($_.Extension)"}
Команда использует системное время компьютера. Если время неверное — исправьте часовой пояс или системные часы в параметрах Windows.
Важно: перед массовыми операциями создайте резервную копию или работайте с копией папки. Также полезно сначала выполнить команду с ключом -WhatIf (см. ниже) для предварительной проверки.
Быстрая проверка и безопасный запуск
Многие cmdlet в PowerShell поддерживают ключи -WhatIf и -Confirm. Они позволяют увидеть, что бы произошло, без выполнения изменений:
Rename-Item "C:\path\file.txt" -NewName "new.txt" -WhatIfЕсли команда выводит ожидаемые действия — запустите её без -WhatIf.
Когда переименование может не сработать
- Недостаточные права: файл открыт другой программой или у вас нет прав на запись.
- Недопустимые символы в имени (например, \ / : * ? “ < > |).
- Путь слишком длинный (ограничение MAX_PATH), если в системе не включена поддержка длинных путей.
- Конфликты имён: новое имя уже существует.
- Неправильное расширение — файл может потерять ассоциацию с программой.
Альтернативные подходы
- Проводник Windows: переименование вручную или групповое переименование с выделением нескольких файлов.
- Командная строка (cmd): команда ren для простых переименований, но она менее гибкая.
- Специализированные утилиты: Total Commander, Bulk Rename Utility — GUI-инструменты с расширенными правилами.
- PowerShell Core (pwsh): команды схожи, но поведение может отличаться в окружениях с отличающейся локалью или правами.
Практические шаблоны и подсказки
- Переименование по шаблону с заменой части имени:
Get-ChildItem PATH -Filter "*.txt" | Rename-Item -NewName { $_.Name -replace 'Old','New' }- Только файлы (без папок): добавьте Where-Object{-not $_.PSIsContainer}.
Get-ChildItem PATH -File | ForEach-Object { ... }- Быстро отфильтровать по маске расширения: используйте -Filter для лучшей производительности при большом количестве файлов.
Чек-листы по ролям
Администратор:
- Сделать резервную копию папки или снимок состояния.
- Проверить права на папку.
- Выполнить команду с -WhatIf.
- Протестировать на небольшой выборке.
Обычный пользователь:
- Скопировать файлы в рабочую папку.
- Запустить команду без рекурсии.
- Убедиться, что расширения сохранены.
Критерии приёмки
- Все целевые файлы получили ожидаемые имена.
- Никакие файлы не перезаписаны без уведомления.
- Расширения остались корректными и файлы открываются приложениями.
- Логи или список изменений сохранён (при необходимости).
Короткий словарь
- Get-ChildItem — получить список файлов/папок в папке.
- Rename-Item — cmdlet для переименования элементов.
- $_ — текущий объект в конвейере (pipeline).
- FullName — полный путь к файлу.
- BaseName — имя файла без расширения.
Примеры случаев, когда лучше не использовать PowerShell
- Требуется сложное взаимодействие с пользователем во время переименования — предпочтительнее GUI-утилиты.
- Необходимо восстанавливать историю переименований и отслеживать изменения — используйте управление версиями или специализированные решения.
Рекомендации по безопасности и откату
- Перед массовыми изменениями всегда делайте копию или включайте систему резервного копирования.
- Для отката можно сохранить список старых и новых имён в CSV-файл и использовать его для обратного переименования.
Пример сохранения соответствий в CSV:
Get-ChildItem PATH -File | ForEach-Object -Begin { $map = @() } -Process { $new = $_.BaseName + "_bak" + $_.Extension; $map += [pscustomobject]@{Old=$_.FullName; New=(Join-Path $_.DirectoryName $new)}; Rename-Item $_.FullName -NewName $new }; $map | Export-Csv "C:\path\rename-map.csv" -NoTypeInformationОткат по CSV:
Import-Csv "C:\path\rename-map.csv" | ForEach-Object { Rename-Item -Path $_.New -NewName (Split-Path $_.Old -Leaf) }Совместимость и примечания по версии
Команды, показанные здесь, работают в стандартном Windows PowerShell, который поставляется с Windows 10 и Windows 11. В PowerShell Core (pwsh) большинство конструкций также поддерживается, но поведение с локалью и правами может отличаться. Если вы используете корпоративный образ Windows, уточните у IT-поддержки, разрешены ли массовые операции.
Резюме
Переименование одним файлом или массово с помощью PowerShell даёт гибкость и повторяемость. Начинайте с резервных копий, используйте -WhatIf для проверки и подбирайте шаблоны под конкретные задачи. PowerShell — мощный инструмент для автоматизации рутинных операций в Windows.
Краткий список действий: резервное копирование → тест на копии → -WhatIf → выполнение → проверка результатов.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента