Загрузка данных


@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

set "count=0"

:: Перебираем все файлы в папке, кроме самого батника
for /f "delims=" %%F in ('dir /b /a-d 2^>nul') do (
    if /i not "%%F"=="%~nx0" (
        set "name=%%~nF"
        set "ext=%%~xF"
        set "new_name=!name!"
        
        :: Отрезаем до 3 цифр с начала имени по очереди
        for /L %%i in (1, 1, 3) do (
            if defined new_name (
                set "first=!new_name:~0,1!"
                for %%d in (0 1 2 3 4 5 6 7 8 9) do (
                    if "!first!"=="%%d" set "new_name=!new_name:~1!"
                )
            )
        )
        
        :: Если цифры в начале были удалены — проверяем, не идет ли следом точка
        if not "!new_name!"=="!name!" (
            if defined new_name (
                if "!new_name:~0,1!"=="." set "new_name=!new_name:~1!"
            )
            
            :: Если после удаления цифр и точки от имени что-то осталось — переименовываем
            if defined new_name (
                if exist "!new_name!!ext!" (
                    echo [Пропуск] Файл "!new_name!!ext!" уже существует.
                ) else (
                    ren "%%F" "!new_name!!ext!"
                    echo "%%F" ---^> "!new_name!!ext!"
                    set /a count+=1
                )
            ) else (
                echo [Пропуск] Имя файла "%%F" состоит только из цифр и точки.
            )
        )
    )
)

echo.
echo [Готово] Переименовано файлов: !count!
pause