Zmień nazwę wielu plików w folderze


0

Mam kilka plików w folderze, takich jak:

asd55.png
qwe55.png
zxc55.png

Chcę usunąć 55 i uzyskać wynik:

asd.png
qwe.png
zxc.png

Próbowałem z:

ren *55.png *.png

ale nie działa.

UWAGA:

Mam różne rozmiary nazw, takie jak:

asd55.png
qwerty55.png

1
ren ??? 55.png ??? Wyjaśnienie można znaleźć na stronie superuser.com/q/475874/109090
dbenham

1
@dbenham Polecenie powinno być ren ???55.png ???.pngJedynym zastrzeżeniem jest to, że działa tylko wtedy, gdy długość nazwy pliku wynosi zawsze 5 (3 + 2). Aby uzyskać bardziej ogólne rozwiązanie, sądzę, że jedynym sposobem jest skrypt wsadowy.
i31415

cóż, mam różne rozmiary nazw plików. jak wioqetr55.png i jsad55.png
tato469


dusza podana przez @ and31415 działała dla mnie :)
tato469

Odpowiedzi:


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

Zobacz W jaki sposób polecenie Windows RENAME interpretuje symbole wieloznaczne? dla wyjaśnienia

Jeśli liczba znaków przed 55 jest różna, prawdopodobnie będziesz chciał użyć skryptu wsadowego. (Można to zrobić za pomocą dość skomplikowanej jednej linijki w linii poleceń, ale nie warto)

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

Jeśli jakakolwiek nazwa pliku może zawierać !, opóźnione rozwijanie musi być włączane i wyłączane w pętli.

@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
)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.