1
0

Create gd_rename.bat

This commit is contained in:
Akamaru
2025-04-29 13:09:46 +02:00
parent b9ec437356
commit 1b5ec5d5c4

113
gd_rename.bat Normal file
View File

@ -0,0 +1,113 @@
@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