У роботі з великою кількістю документів чи зображень часто виникає потреба масово змінити імена файлів — наприклад, видалити зайву частину назви, додану після обробки чи стиснення. Робити це вручну довго та незручно, особливо коли таких файлів десятки або сотні. Набагато ефективніше скористатися простим BAT-скриптом, який автоматизує процес перейменування. Завдяки кільком рядкам коду можна швидко видалити небажані суфікси з назв, наприклад «-compressed» чи «-min», і залишити чисті, зрозумілі імена файлів.
Нижче наведено три варіанти BAT-скриптів для перейменування файлів після їх обробки сервісом iLovePDF та OptimiZilla (imagecompressor):
- Перейменування файлів в поточній папці
- Перейменування файлів у вказаній папці
- Перейменування файлів у сусідній папці
Кожен приклад супроводжується поясненням. Сподіваюся вам стане в пригоді мій код.
Коли може знадобитися перейменування файлів за допомогою BAT
Сервіси iLovePDF та OptimiZilla, після стиснення файлів пакетною обробкою, додають до їх імені суфікс «-compressed» та «-min». Це робиться для того, щоб користувач не втратив оригінальні файли та не переплутав їх зі стиснутими. Але ж бувають моменти, коли потрібно щоб стиснуті файли мали таке саме ім’я як оригінальні. І тоді виникає потреба в автоматизації процесу. Адже одна справа перейменувати вручну один-два файли, а інша справа — перейменувати 100-200 файлів.
В таких випадках, на допомогу користувачам Windows приходить Batch Script.
Записавши декілька рядків коду в BAT файл і запустивши його, перейменування файлів відбудеться за декілька секунд.
Перейменування файлів в поточній папці
Цей BAT-скрипт автоматично перейменовує всі PDF-файли в папці, де знаходиться сам файл BAT, видаляючи з назв суфікс -compressed.
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
REM Отримуємо шлях до папки, де знаходиться BAT
set "folder=%~dp0"
echo Поточна папка:
echo %folder%
echo.
set /p confirm=Чи бажаєте перейменувати файли по цьому шляху? (Yes/No):
if /i "%confirm%"=="Yes" (
echo.
echo 🔄 Виконується перейменування...
echo.
cd /d "%folder%"
for %%f in (*-compressed.pdf) do (
set "oldname=%%f"
set "newname=!oldname:-compressed=!"
ren "%%f" "!newname!"
echo Перейменовано: %%f → !newname!
)
echo.
echo ✅ Готово! Усі файли з -compressed перейменовано.
) else (
echo ❌ Операцію скасовано.
)
pause
Пояснення коду скрипта
@echo off— вимикає відображення команд у вікні консолі, залишаючи лише потрібні повідомлення для користувача.chcp 65001 >nul— встановлює кодування UTF-8 для коректного відображення українських символів.setlocal enabledelayedexpansion— дозволяє використовувати змінні всередині циклів із «!» замість «%». Це вказівка системі оновлювати значення змінних одразу, коли вони змінюються, а не після завершення циклу.set "folder=%~dp0"— визначає шлях до папки, де знаходиться BAT-файл, щоб працювати саме з нею.- Блок
echoіset /p confirmпоказує користувачу поточну папку та запитує підтвердження на виконання перейменування. if /i "%confirm%"=="Yes"перевіряє, чи користувач погодився;/iробить порівняння нечутливим до регістру.cd /d "%folder%"змінює робочу директорію на папку BAT-файлу, щоб циклforобробляв потрібні файли.- Цикл
for %%f in (*-compressed.pdf) do (...)перебирає всі PDF-файли з суфіксом -compressed. set "oldname=%%f"зберігає оригінальне ім’я файлу.set "newname=!oldname:-compressed=!"створює нову назву, видаляючи -compressed.ren "%%f" "!newname!"перейменовує файл.echo Перейменовано: %%f → !newname!виводить інформацію про зміну назви.- Якщо користувач відмовляється (
else), виводиться повідомлення про скасування операції. pauseзупиняє виконання скрипта, щоб можна було побачити результати перед закриттям консолі.
Перейменування файлів у вказаній папці
Цей BAT-скрипт дозволяє автоматично перейменувати всі PDF-файли у вказаній папці, видаляючи з їхніх назв суфікс -compressed.
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
REM Вказуємо шлях до потрібної папки
set "folder=C:\Users\Назва_ПК\Документи\iLovePDF_Output\ilovepdf-compress"
echo Обрана папка:
echo %folder%
echo.
set /p confirm=Чи бажаєте перейменувати файли у цій папці? (Yes/No):
if /i "%confirm%"=="Yes" (
echo.
echo 🔄 Виконується перейменування...
echo.
cd /d "%folder%"
for %%f in (*-compressed.pdf) do (
set "oldname=%%f"
set "newname=!oldname:-compressed=!"
ren "%%f" "!newname!"
echo Перейменовано: %%f → !newname!
)
echo.
echo ✅ Готово! Усі файли з -compressed перейменовано.
) else (
echo ❌ Операцію скасовано.
)
pause
Покрокове пояснення роботи коду
@echo off— вимикає відображення команд у консолі, залишаючи лише повідомлення для користувача.chcp 65001 >nul— встановлює кодування UTF-8 для правильного відображення українських символів.setlocal enabledelayedexpansion— дозволяє використовувати змінні всередині циклів з розширенням через!, що необхідно для обробки імен файлів у цикліfor. Без цього скрипт не буде правильно перейменовувати файли.set "folder=..."— задає конкретний шлях до папки, де знаходяться файли для перейменування.- Блок
echoпоказує користувачу обрану папку, аset /p confirmзапитує підтвердження на виконання операції. if /i "%confirm%"=="Yes"перевіряє, чи користувач погодився на перейменування, при цьому/iробить порівняння нечутливим до регістру літер.cd /d "%folder%"змінює робочу директорію на вказану папку, щоб циклforобробляв потрібні файли.- Цикл
for %%f in (*-compressed.pdf) do (...)перебирає всі PDF-файли з суфіксом -compressed: set "oldname=%%f"зберігає оригінальне ім’я файлу.set "newname=!oldname:-compressed=!"створює нову назву файлу, видаляючи частину -compressed.ren "%%f" "!newname!"виконує фактичне перейменування файлу.echo Перейменовано: %%f → !newname!виводить інформацію про зміну назви для контролю.- Якщо користувач відмовляється від операції (
else), виводиться повідомлення про скасування. pauseзупиняє виконання скрипта, щоб користувач міг переглянути результати перед закриттям консолі.
Перейменування файлів у сусідній папці
Цей BAT-скрипт автоматично перейменовує зображення JPG, видаляючи з назв файлів суфікс -min, при умові, що папка imagecompressor знаходиться в тому самому каталозі що й BAT-файл.
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
REM --- Отримуємо шлях до папки imagecompressor відносно розташування BAT ---
set "folder=%~dp0imagecompressor"
if not exist "%folder%" (
echo ❌ Папку "imagecompressor" не знайдено за шляхом:
echo %folder%
pause
exit /b
)
echo Поточна папка:
echo %folder%
echo.
set /p confirm=Чи бажаєте перейменувати файли по цьому шляху? (Yes/No):
if /i "%confirm%"=="Yes" (
echo.
echo 🔄 Виконується перейменування...
echo.
cd /d "%folder%"
REM --- Обробляємо файли з .JPG і .jpg ---
for %%f in (*-min.JPG *-min.jpg) do (
if exist "%%f" (
set "oldname=%%f"
set "newname=!oldname:-min=!"
ren "%%f" "!newname!"
echo Перейменовано: %%f → !newname!
)
)
echo.
echo ✅ Готово! Усі файли з "-min" перейменовано.
) else (
echo ❌ Операцію скасовано.
)
pause
Покрокове пояснення роботи скрипта
@echo off— приховує команди в консолі, залишаючи тільки повідомлення для користувача.chcp 65001 >nul— встановлює кодування UTF-8 для коректного відображення українських символів.setlocal enabledelayedexpansion— дозволяє використовувати змінні всередині циклів з розширенням через!. Цим ми вказуємо системі, що потрібно оновлювати значення змінних одразу, коли вони змінюються, а не після завершення циклу. Без цієї вказівки скрипт буде працювати неправильно.set "folder=%~dp0imagecompressor"— визначає шлях до папки imagecompressor, розташованої поруч із BAT-файлом.- Блок
if not exist "%folder%"перевіряє, чи існує папка; якщо ні — виводиться повідомлення про помилку, і скрипт зупиняється. echo і set /p confirmпоказують поточний шлях та запитують підтвердження користувача перед перейменуванням.if /i "%confirm%"=="Yes"перевіряє, чи користувач дав згоду;/iробить порівняння нечутливим до регістру.cd /d "%folder%"змінює робочу директорію на потрібну папку для обробки файлів.- Цикл
for %%f in (*-min.JPG *-min.jpg) do (...)перебирає всі JPG-файли з суфіксом -min: if exist "%%f"переконується, що файл дійсно існує.set "oldname=%%f"зберігає оригінальне ім’я файлу.set "newname=!oldname:-min=!"формує нове ім’я без -min.ren "%%f" "!newname!"перейменовує файл.echo Перейменовано: %%f → !newname!виводить результат для контролю.- Якщо користувач відмовляється (
else), виводиться повідомлення про скасування операції. pauseзупиняє скрипт після виконання, щоб можна було переглянути результати.
За потреби, використовуючи вищенаведені приклади коду, ви легко зможете написати власний скрипт для перейменування файлів. Наприклад, можна зробити щоб скрипт опрацьовував не тільки файли з розширенням PDF чи JPG, а й з будь-яким іншим. Також можна прибрати запит на підтвердження виконання перейменування та вивід результату обробки файлів. Це дозволить ще більше заощадити час при роботі з великою кількістю файлів..
