Удаляются все файлы
Одинаковые файлы в папке, сгруппированы по сходству, добавлен номер группы. например:
- 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, и в самой группе почему-то не удаляет остальные файлы и не оставляет первую