Windows 10 rename Befehl?

2 Antworten

rename/ren mit Wildcards arbeitet ersetzend!

Der Befehl ist schon immer schlecht dokumentiert und kann zu recht seltsam anmutenden Ergebnissen führen. (prollig ausgedrückt "Pain in the Ass"😤🤯😠)

https://www.dostips.com/forum/viewtopic.php?t=3788

Überlass die Auswahl dessen, was getan werden soll nicht den den Tücken von rename.

Bequemer ist es mit dem for und rename:

@echo off
chcp 65001 >nul
::zur demo ein paar Dateien erzeugen, welche zu meiner verwendeten Suchmaske passen
(call )>blubblaber.txt
(call )>blubbMuhhh.txt
(call )>blubbRumpel.txt


  rem suche alle Dateien, welche mit "blubb" beginnen  (*.* wären alle Dateien, *.jpg alle irgendwas.jpg)
  rem umbenenne des in %%a übergebenen Dateinamen in 2019in %%a übergebenen Dateinamen
for %%a in (blubb*.*) do (ren "%%a" "2019%%a")
pause

direkt in cmd eingegeben mit einfachem %

for %a in (*.jpg) do (ren "%a" "2019%%a")

Auf diese Art kann man auch wunderbar Bedingungen für spezielle Fälle festlegen:

@echo off
chcp 65001 >nul


(call )>blubblaber.txt
(call )>blubbMuhhh.txt
(call )>blubbRumpel.txt
(call )>blubbMallorcaUrlaub2019.jpg


for %%a in (blubb*.*) do (call :renameIt "%%a")
pause
exit /b
  rem hier  was mit den Dateinamen genau passieren soll wenn die Bedingung zutrifft
:renameIt
set "QuellName=%~1"
set "ZielName=%QuellName%
  rem ersetze alle Muhhh durch Stier
set "ZielName=%ZielName:Muhhh=Stier%"
set "ZielName=%ZielName:2019=%"
  rem wenn der Dateiname Mallorca enthält entferne blubb und  mach aus "Mallorca" "Malle"
echo "%ZielName%"|find /i "Mallorca" >nul && (
    set "ZielName=%ZielName:blubb=%"
    call set "Zielname=%%Zielname:Mallorca=Malle%%
    call set "Zielname=%%Zielname:Urlaub=Faulenzia%%
)
set "Zielname=2019.%Zielname%"


ren "%QuellName%" "%Zielname%"