Автоматическое переименование файлов

BAT-скрипт для переименования файлов по порядку (1, 2, 3...N)

Массовое переименование файлов в Windows часто вызывает проблемы, когда требуется чёткая последовательность названий без потери расширений и без конфликтов имен. Стандартные инструменты Проводника ограничены, особенно при работе с большим количеством файлов или разными форматами. В таких случаях целесообразно использовать BAT-скрипт, автоматизирующий процесс и гарантирующий корректный результат.

В этом материале приведён готовый BAT-скрипт, который переименовывает все файлы в папке в последовательность от 1 до N:

  • с сохранением расширений (например, 1.txt, 2.jpg, 3.pdf).
  • с возможностью указать расширение файлов, которые нужно переименовывать (например, только .txt или только .jpg)

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

Готовый BAT-скрипт для переименования всех файлов по порядку (1.txt, 2.jpg, 3.pdf)

rem Скрипт работает в папке, где находится сам файл, и переименовывает все файлы в номера от 1 до N. Расширения остаются. Сам rename.bat не переименовывается
@echo off
chcp 65001 >nul
setlocal EnableDelayedExpansion

rem Переходим в папку с этим BAT-файлом
cd /d "%~dp0"

set "batname=%~nx0"
set "prefix=%~n0_temp_"
set "count=0"

echo Етап 1: Временные имена...
for /f "delims=" %%a in ('dir /b /a-d') do (
    if /I not "%%a"=="%batname%" (
        set /a count+=1
        ren "%%a" "%prefix%!count!%%~xa"
    )
)

echo Етап 2: Финальные номера...
set "count=0"
for /f "delims=" %%a in ('dir /b /a-d %prefix%*') do (
    set /a count+=1
    ren "%%a" "!count!%%~xa"
)

echo.
echo Готово! Переименовано файлов: %count%
pause

Примечание.

Если нужно переименовать не только файлы, но и папки, то уберите параметр /a-d в двух строках с dir /b /a-d (оставьте просто dir /b).

Готовый BAT-скрипт для переименования указанных типов файлов по порядку

@echo off
chcp 65001 >nul
setlocal EnableDelayedExpansion

cd /d "%~dp0"
set "batname=%~nx0"
set "prefix=%~n0_temp_"
set "count=0"

:ask
echo.
echo ============================================
echo ВВЕДИТЕ расширение файлов для переименования
echo Примеры: .txt   .jpg   .pdf   .docx
echo Для ВСЕХ файлов введите: all
echo ============================================
set /p "ext=Ваш выбор: "

if "%ext%"=="" goto ask

rem Проверяем ввели "all" (без учёта регистра)
if /I "%ext%"=="all" (
    set "ext="
) else (
    rem Автоматически добавляем точку в начало, если её нет
    if not "%ext:~0,1%"=="." set "ext=.%ext%"
)

echo.
if "%ext%"=="" (
    echo Режим: ВСЕ файлы
) else (
    echo Расширение: %ext%
)
echo Етап 1: Временные имена...

if "%ext%"=="" (
    for /f "delims=" %%a in ('dir /b /a-d') do (
        if /I not "%%a"=="%batname%" (
            set /a count+=1
            ren "%%a" "%prefix%!count!%%~xa"
        )
    )
) else (
    for /f "delims=" %%a in ('dir /b /a-d *%ext%') do (
        set /a count+=1
        ren "%%a" "%prefix%!count!%ext%"
    )
)

echo Етап 2: Финальные номера...
set "count=0"

if "%ext%"=="" (
    for /f "delims=" %%a in ('dir /b /a-d %prefix%*') do (
        set /a count+=1
        ren "%%a" "!count!%%~xa"
    )
) else (
    for /f "delims=" %%a in ('dir /b /a-d %prefix%*%ext%') do (
        set /a count+=1
        ren "%%a" "!count!%ext%"
    )
)

echo.
echo ============================================
echo ГОТОВО! Переименовано файлов: %count%
echo ============================================
pause

Как использовать:

  1. Скопируйте код в блокнот и сохраните файл с расширением .bat в нужной папке (Например, rename.bat).
  2. Запустите BAT двойным щелчком.

Main Menu