1 Pluspunkt 0 Minuspunkte

Ich versuche in mehreren Dateien in einem Verzeichnis ein Wort im Dateinamen durch ein anderes zu ersetzen? Das Problem ist das die Dateierweiterung (txt, exe,..) nicht im neuen Namen übernommen wird. Ich kann sie manuell setzen aber manchmal sind mehrere verschiedene Dateitypen in einem Verzeichnis und das ist dann nicht so praktisch.

@echo off
setlocal enabledelayedexpansion

set "suchwort=alt"   
set "ersetzung=neu" 

for %%F in (*%suchwort%*) do (
    set "dateiname=%%~nF"
    set "neuername=!dateiname:%suchwort%=%ersetzung%!"
    ren "%%F" "!neuername!"
)

endlocal
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Mit %%~xF kannst du auf die Dateierweiterung zugreifen.

for %%F in (*%suchwort%*) do (
    set "dateiname=%%~nF"
    set "neuername=!dateiname:%suchwort%=%ersetzung%!"
    ren "%%F" "!neuername!%%~xF"
)
von (732 Punkte)