Масове перейменування файлів у 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
Як використовувати:
- Скопіюйте код у блокнот і збережіть файл з розширенням .bat у потрібній папці (Наприклад rename.bat).
- Запустіть BAT подвійним кліком.
