Автоматичне перейменування файлів

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