@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
:: Поиск первых двух изображений в текущей папке
set "file1="
set "file2="
for %%F in (*.jpg *.jpeg *.png *.bmp *.webp) do (
if not defined file1 (
set "file1=%%F"
set "name1=%%~nF"
set "ext1=%%~xF"
) else if not defined file2 (
set "file2=%%F"
set "name2=%%~nF"
set "ext2=%%~xF"
)
)
:: Проверка наличия двух файлов
if not defined file2 (
echo [Ошибка] В папке должно быть как минимум два изображения.
pause
exit /b
)
:: Разделяем имена файлов на первую часть (до дефиса) и вторую (после дефиса)
for /f "tokens=1,* delims=-" %%a in ("!name1!") do (
set "pref1=%%a"
if not "%%b"=="" (set "sub1=%%b") else (set "sub1=%%a")
)
for /f "tokens=1,* delims=-" %%a in ("!name2!") do (
set "pref2=%%a"
if not "%%b"=="" (set "sub2=%%b") else (set "sub2=%%a")
)
:: Убираем ведущие нули перед математическим сложением (защита от ошибки на числах 008 и 009)
set "start1="
for /f "tokens=* delims=0" %%z in ("!pref1!") do set "start1=%%z"
if not defined start1 set "start1=0"
set "start2="
for /f "tokens=* delims=0" %%z in ("!pref2!") do set "start2=%%z"
if not defined start2 set "start2=0"
echo Первое фото: "!file1!"
echo Второе фото: "!file2!"
echo.
:: Ввод количества копий
set "count=0"
set /p "count=Введите количество копий: "
if !count! LEQ 0 (
echo [Отмена] Введено некорректное количество.
pause
exit /b
)
:: Запуск цикла: к исходному номеру на каждом шаге прибавляется 1
for /L %%i in (1, 1, !count!) do (
set /a "cur1=start1 + %%i"
set /a "cur2=start2 + %%i"
set "num1=00!cur1!"
set "num1=!num1:~-3!"
set "num2=00!cur2!"
set "num2=!num2:~-3!"
set "new1=!num1!-!sub1!!ext1!"
set "new2=!num2!-!sub2!!ext2!"
copy /y "!file1!" "!new1!" >nul
copy /y "!file2!" "!new2!" >nul
echo Создана пара: !new1! и !new2!
)
echo.
echo [Готово] Копии созданы, исходные файлы сохранены.
pause