У меня есть несколько файлов в моей папке, например:

asd55.png
qwe55.png
zxc55.png

Я хочу удалить 55 и получить результат:

asd.png
qwe.png
zxc.png

Я пробовал с:

ren *55.png *.png

но не работает.

НОТА:

У меня есть разные размеры имени, такие как:

asd55.png
qwerty55.png

1 ответ1

1
ren ???55.png ???.png

См. Как команда Windows RENAME интерпретирует подстановочные знаки? для объяснения

Если число символов до 55 варьируется, то, возможно, вы захотите использовать пакетный скрипт. (Может быть сделано с довольно сложным одним вкладышем в командной строке, но не стоит)

@echo off
setlocal enableDelayedExpansion
for /f "delims=" %%F in ('dir /a-d ?*55.png') do (
  set "name=%%~nF"
  ren "%%F" "!name:~0,-2!%%~xF"
)

Если любое имя файла может содержать ! затем отложенное расширение должно включаться и выключаться в цикле.

@echo off
setlocal disableDelayedExpansion
for /f "delims=" %%F in ('dir /a-d ?*55.png') do (
  set "name=%%~nF"
  set "ext=%%~xF"
  setlocal enableDelayedExpansion
  ren "!name!!ext!" "!name:~0,-2!!ext!"
  endlocal
)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .