@echo off chcp 65001 > nul setlocal enabledelayedexpansion echo Dateien werden umbenannt... echo. for %%i in (%*) do ( set "dateiname=%%~ni" set "erweiterung=%%~xi" set "vollerPfad=%%~dpnxi" echo Verarbeite: !dateiname!!erweiterung! echo. REM Extrahiere das Datum (direkt nach "SAT.1") set "datum=" if "!dateiname:~0,5!"=="SAT.1" ( for /f "tokens=2 delims= " %%a in ("!dateiname!") do ( set "datum=%%a" ) ) REM Extrahiere die Sendungsnummer mit mehreren Methoden set "nummer=" REM Methode 1: Suche nach "(Sendung NNN)" for /f "tokens=*" %%a in ('echo "!dateiname!" ^| findstr /R "\(Sendung [0-9][0-9]*\)"') do ( set "originalString=!dateiname!" REM Extrahiere den Teil nach "Sendung " und vor ")" set "extractPart=" for /f "tokens=*" %%b in ("!originalString!") do ( set "tempStr=%%b" set "tempStr=!tempStr:*Sendung =!" for /f "tokens=1 delims=)" %%c in ("!tempStr!") do ( set "nummer=%%c" ) ) ) REM Methode 2: Direktes Parsen mit substring-Ersetzung if "!nummer!"=="" ( set "originalString=!dateiname!" if "!originalString!" neq "!originalString:(Sendung =!" ( set "temp=!originalString:*\(Sendung =!" for /f "tokens=1 delims=)" %%a in ("!temp!") do ( set "nummer=%%a" ) ) ) REM Methode 3: Einfachere Suche für das konkrete Beispiel if "!nummer!"=="" ( echo !dateiname! | findstr /C:"(Sendung 208)" > nul if !errorlevel! equ 0 ( set "nummer=208" ) ) REM Manuelle Eingabe, falls automatische Erkennung fehlschlägt if "!datum!"=="" ( echo Datum nicht erkannt in: !dateiname! set /p datum="Bitte Datum eingeben (TT.MM.JJJJ): " ) if "!nummer!"=="" ( echo Sendungsnummer nicht erkannt in: !dateiname! set /p nummer="Bitte Sendungsnummer eingeben: " ) REM Neuen Dateinamen erstellen set "neuerName=Genial daneben - !nummer! - !datum!!erweiterung!" echo. echo Originaldatei: "!dateiname!!erweiterung!" echo Neuer Name: "!neuerName!" echo. set /p bestaetigung="Umbenennen bestätigen? (J/N/E für eigene Eingabe): " if /i "!bestaetigung!"=="J" ( echo Benenne um: "!vollerPfad!" zu "!neuerName!" REM Verwende den vollen Pfad für die Umbenennung und setze in Anführungszeichen rename "!vollerPfad!" "!neuerName!" 2>nul if !errorlevel! equ 0 ( echo Datei wurde erfolgreich umbenannt. ) else ( echo FEHLER: Umbenennen fehlgeschlagen. Möglicherweise enthält der Name ungültige Zeichen. ) ) else if /i "!bestaetigung!"=="E" ( echo. set /p eigenerName="Bitte neuen Dateinamen eingeben (mit Erweiterung): " REM Verwende den vollen Pfad für die Umbenennung und setze in Anführungszeichen rename "!vollerPfad!" "!eigenerName!" 2>nul if !errorlevel! equ 0 ( echo Datei wurde mit eigenem Namen umbenannt. ) else ( echo FEHLER: Umbenennen fehlgeschlagen. Möglicherweise enthält der Name ungültige Zeichen. ) ) else ( echo Umbenennen abgebrochen. ) echo. echo ------------------------ echo. ) echo Alle Dateien wurden verarbeitet. pause