Пакетный файл, который заменяет буквы без расширения

Я пытаюсь создать простой пакетный файл, который заменяет буквы латинского алфавита на имя файла jpg, но я не знаю, как остановить пакетный файл от изменения расширений.

@echo off
chcp 65001
Setlocal enabledelayedexpansion

Set "Pattern=p"
Set "Replace=п"

For %%# in ("*.jpg") Do (
    Set "File=%%~nx#"
    Ren "%%#" "!File:%Pattern%=%Replace%!"
)

Pause&Exit

Этот скрипт меняет имя с p.jpg на п.j п g, что бесполезно. Любое предложение приветствуется.

Спасибо

1 ответ

Используйте модификаторы с умом:

...
For %%# in ("*.jpg") Do (
    Set "File=%%~n#"
     ECHO Ren "%%~f#" "!File:%Pattern%=%Replace%!%%~x#"
)
...

удалить ECHO если вывод то, что вам нужно.

Другие вопросы по тегам