Original von habi5586
das format ist atm etwas wirr, lie�?e sich aber auf
originalname neuername
problemlos reduzieren
Hab mal was zusammengehackt, was nur die Originalnamen benötigt. Einfach eine Datei, in der in jeder Zeile der Name der Datei steht, die umbenannt werden soll. Keine Leerzeichen davor oder danach einfügen und keine vollständigen Pfadangaben!!
Format:
----------------
datei1.png
datei2.png
----------------
Aufruf: myrename.cmd <prefix> < Liste.txt
Beispiel: myrename.cmd "H_" < Liste.txt
Skript: myrename.cmd
@echo off
REM
REM Aufruf: myrename.cmd <prefix> < <txt-datei>
REM
REM <txt-datei> enthaelt die Dateinamen der Dateien, die mit dem
REM Prefix <prefix> versehen werden sollen. Jeder Dateiname muss
REM in einer einzelnen Zeile stehen. Die Dateinamen duerfen keine
REM Pfadangaben enthalten. Das Skript muss aus dem Verzeichnis
REM aufgerufen werden, in dem auch die Dateien liegen, die umbenannt
REM werden sollen.
REM
REM Beispiel:
REM ---------
REM
REM Textdatei "Liste.txt":
REM ----------------------------------
REM datei1.png
REM datei2.gif
REM datei234.jpg
REM ----------------------------------
REM
REM Neues Prefix der Dateien: "h_"
REM
REM Aufruf: myrename "h_" < Liste.txt
REM
REM
REM Bilder sollen in ein anderes Verzeichnis verschoben werden: "c:\bilder\"
REM Der Pfad muss dabei mit einem '\' enden!
REM
REM Aufruf: myrename "c:\bilder\" < Liste.txt
REM
REM
REM Bilder sollen verschoben werden und mit dem Prefix "h_" versehen werden.
REM
REM Aufruf: myrename "c:\bilder\h_" < Liste.txt
REM
set prefix=%~1
set lastfile=
:readnext
set /p infile=
if "%infile%"=="%lastfile%" goto end
set lastfile=%infile%
echo Renaming "%infile%" to "%prefix%%infile%"...
move "%infile%" "%prefix%%infile%"
goto readnext
:end
echo All Done.
ACHTUNG: Ich hab das Skript in 2 Mins zusammengehackt und nicht gross getestet. Es besteht also die Möglichkeit, dass es all deine Daten schrottet. Am besten du backupst deinen ganzen Bilder-Ordner vorher.