Удаляются все файлы

Одинаковые файлы в папке, сгруппированы по сходству, добавлен номер группы. например:

  • photos_1001_96 grup.jpg
  • photos_1004_96 grup.jpg

Нужно оставить только первый файл в группе и переименововать его.

Те оставить photos_1001_96 grup.jpg и переименовать его в photos_1001.

Вроде написал код, но удаляются все файлы и не оставляется первый. Помогите пожалуйста решить

@echo off
setlocal enabledelayedexpansion

REM Укажите путь к папке с файлами
set "folder=C:\Users\Shawty\Desktop\s"

REM Переходим в указанную папку
cd /d "%folder%"

REM Объявляем переменную для хранения уникальных групп
set "groups="

REM Проходим по всем файлам в папке
for %%f in (*.jpg) do (
    REM Извлекаем номер группы из имени файла
    for /f "tokens=2 delims=_" %%g in ("%%~nf") do (
        set "group=%%g"

        REM Проверяем, есть ли уже эта группа в списке
        echo !groups! | findstr /c:"!group!" >nul
        if errorlevel 1 (
            REM Если группы нет в списке, добавляем её
            set "groups=!groups! !group!"

            REM Переименовываем файл, убирая " grup" из имени
            set "newname=%%~nf"
            set "newname=!newname:_ grup=!"
            ren "%%f" "!newname!.jpg"
            echo Оставлен файл: "!newname!.jpg"
        ) else (
            REM Если группа уже есть в списке, удаляем файл
            echo Удаляем файл: "%%f"
            del "%%f"
        )
    )
)

echo Завершено.
pause

Этот код удаляет все группы кроме 96, и в самой группе почему-то не удаляет остальные файлы и не оставляет первую


Ответы (0 шт):