Toolz: переименовываем файлы при пакетной обработке

Очередь в Image Compressor уже умеет многое: добавлять изображения «на лету», удалять лишние, пересобирать ZIP без полного ресета (об этом уже был отдельный пост — про редактирование очереди и обзорный материал про все модули). Теперь к этому добавился ещё один практичный слой — автоматическое переименование файлов по шаблону при конвейерной обработке.
В этом посте — не про реализацию, а про сценарии: какие шаблоны можно собирать, какие токены доступны и как новая функция экономит время, когда у вас десятки картинок в батче.
Зачем вообще переименовывать файлы в батче
Когда работаешь с очередью изображений, имена файлов часто живут своей жизнью:
- экспорт из редактора даёт длинные названия вроде
Untitled_Project_23_final_final_v3.png; - одна и та же сцена рендерится в разных размерах, а имена не отражают ни размер, ни порядок;
- нужно подготовить ассеты под конкретный блок интерфейса:
hero-01.webp,hero-02.webp,hero-03.webpи т.д.
Ручное переименование после скачивания ZIP — это:
- повторяющиеся действия в файловом менеджере;
- риск ошибиться в нумерации или пропустить файл;
- потеря связи между «оригинальным именем» и тем, что в итоге попало в проект.
Новый конструктор шаблонов имён решает это на этапе экспорта:
- вы один раз задаёте шаблон имени;
- видите предпросмотр для первых файлов очереди;
- при скачивании ZIP файлы уже лежат с нужными именами.
Как это работает в интерфейсе
Функция переименования живёт в модуле Image Compressor, в режиме очереди (когда загружено несколько изображений).

Включение и выключение
- В панели Image settings теперь есть отдельный блок «Переименовать файлы по шаблону».
- В блоке — тумблер: пока он выключен, поведение остаётся прежним, ZIP сохраняет оригинальные имена.
- При включении появляется поле ввода шаблона и предпросмотр имён.
Важно: переименование работает только в мульти‑режиме (когда в очереди несколько файлов). Для одиночной картинки эта опция не показывается — там достаточно ручного имени.
Шаблон и подсказки
В поле шаблона вы задаёте строку, по которой будут генерироваться имена:
image-{index}.{ext}
Ниже — блок подсказок с токенами:
| Токен | Описание | Пример |
|---|---|---|
{name} |
Исходное имя файла без расширения | hero_big |
{ext} |
Расширение файла (без точки) | png, webp, avif |
{index} |
Порядковый номер в очереди, начиная с 1 | 1, 2, 3 |
{index:02} |
Порядковый номер с ведущими нулями | 01, 02, 03 |
{date} |
Текущая дата в формате YYYY-MM-DD | 2026-03-03 |
{date:YYYYMMDD} |
Текущая дата в заданном формате | 20260303 |
Шаблон можно комбинировать как угодно:
blog-{date:YYYYMMDD}-{index:02}.{ext}thumb-{index}.{ext}product-{name}-{index:03}.{ext}
Предпросмотр имён
Чтобы не гадать, что получится на выходе, под шаблоном есть небольшой список:
- для первых трёх элементов очереди показывается пара:
- оригинальное имя с иконкой изображения;
- новое имя, сгенерированное по текущему шаблону.
- всё это с обрезкой по ширине панели, но достаточно, чтобы увидеть общую структуру и нумерацию.
Так можно спокойно поиграться с шаблоном и добить его до идеального вида, не пересобирая ZIP каждый раз.
Как формируются имена при экспорте
Когда вы нажимаете «Скачать изображения»:
- Для каждого элемента очереди берётся:
- оригинальное имя файла (например,
Screenshot 2026-03-03 at 11.15.18.png); - кодек и MIME‑тип (чтобы понять расширение, если нужно).
- оригинальное имя файла (например,
- Если тумблер переименования выключен — файл попадает в архив с оригинальным именем (с учётом логики избежания дублей в ZIP).
- Если тумблер включен и задан шаблон:
- конструктор вычисляет:
{name}— исходное имя без расширения;{ext}— расширение по MIME или по имени;{index}/{index:02}— порядковый номер;{date}— дату на момент экспорта;
- собирает строку по шаблону;
- эта строка используется как имя файла в ZIP.
- конструктор вычисляет:
При наличии дублей (одинаковых итоговых имён) ZIP‑сборщик, как и раньше, аккуратно добавляет суффиксы (_2, _3 и т.д.), так что конфликтов не возникает.
Примеры шаблонов под реальные задачи
1. Серия превью для блога
Задача: подготовить изображения для статьи, имена вида post-01.webp, post-02.webp…
Шаблон:
post-{index:02}.{ext}
Итог:
post-01.webppost-02.webppost-03.webp- …
2. Экспорт ассетов под конкретный блок интерфейса
Задача: блок hero с несколькими состояниями — hero-1, hero-2, hero-3.
Шаблон:
hero-{index}.{ext}
Итог:
hero-1.avifhero-2.avifhero-3.avif
3. Привязка к исходным названиям
Задача: сохранить связь с оригинальным именем, но добавить нумерацию и привести формат к единому виду.
Шаблон:
{name}-{index:02}.{ext}
Итог:
Homepage Banner-01.webpHomepage Banner-02.webpHomepage Banner-03.webp
Удобно, когда дизайнеры уже дали говорящие имена, и вы не хотите их полностью терять.
4. Архив «по дате»
Задача: выгрузить ZIP со всеми файлами, пометив дату экспорта.
Шаблон:
{date:YYYYMMDD}-{index:02}.{ext}
Итог (для 3 марта 2026 года):
20260303-01.webp20260303-02.webp20260303-03.webp
Итог: очередь, профили и имена — вместе
Новый конструктор переименования хорошо ложится на уже существующую архитектуру:
- Редактируемая очередь в Image Compressor позволяет гибко собирать батч (добавить, удалить, пережать ещё раз) — об этом подробно в отдельном посте.
- Профили настроек (кодеки, ресайз, палитра) обеспечивают повторяемость качества для разных проектов — обзор есть в статье «Toolz — в помощь вебмастеру».
- Шаблоны имён теперь закрывают последний «ручной» шаг — переименование файлов после скачивания.
Вместе это даёт конвейер: загрузили → настроили → сжали → скачали ZIP → разложили по проекту, без лишних телодвижений в файловом менеджере и без путаницы в названиях.