Vinzenz Mai: dos-batch umbennen von dateinamen geht nit

Beitrag lesen

Hallo Frankx,

in einem Ordner Dateien namens artist-titel.jpg, artist1-titel1.jpg.

daraus soll werden: artist-titel-klein.jpg etc.

nun hab ich gefunden, wie einfach mit dos-batch die dateiendungen abgeschnitten werden können.

mit der Kommandozeile von Windows XP, die mit DOS herzlich wenig zu tun hat, lässt sich Dein Problem relativ einfach lösen, es ist ein Dreizeiler.

@echo off
for %%I IN (%1\.jpg) do ren %%I "%%~nI-klein.tmp
for %%I IN (%1\
.tmp) do ren %%I "%%~nI.jpg

Aufruf:

pfad\zu\Skript LW:Pfad\zu\Verzeichnis

Mit ein paar Erläuterungen sind es ein paar Zeilen mehr.

@echo off
REM ----------------------------------------------------------------
REM erwarteter Übergabeparameter ist das zu bearbeitende Verzeichnis
REM   steht in %1
REM Durchlaufe alle Dateien mit der Endung .jpg im angegebenen Verzeichnis
REM Hänge an den Dateinamen die Zeichenkette "-klein" und ändere die
REM Endung in .tmp, damit die Dateien nicht erneut umbenannt werden :-)
REM Verwende eine Endung, damit im zweiten Durchlauf nicht das gleiche
REM Problem des Mehrfachdurchlaufes entsteht.
for %%I IN (%1\.jpg) do ren %%I "%%~nI-klein.tmp
REM ----------------------------------------------------------------
REM Benenne die Endung um in .jpg
for %%I IN (%1\
.tmp) do ren %%I "%%~nI.jpg

Dazu müssen die Befehlserweiterungen zur Verfügung stehen, was standardmäßig der Fall ist. Mehr zu for mit

help for

Freundliche Grüße

Vinzenz