ghost-in-the-shell
Goto Top

mehrere dateien umbenennen mit name und nummer

Hallo

Ich habe 359 unterschiedliche dateien ( Bilder ) die möchte ich alle mit einem namen
und fortlaufend umbenennen.

So wie das der TotalCommander macht - das möchte ich aber mit einer Bat-Datei


haus.jpg urlaub2007-001
auto.jpg urlaub2007-002
frau.jpg urlaub2007-003
xxx1.jpg urlaub2007-004
xx7.jpg urlaub2007-005
usw

Content-Key: 45451

Url: https://administrator.de/contentid/45451

Printed on: April 19, 2024 at 22:04 o'clock

Member: y3k
y3k Nov 27, 2006 at 17:26:45 (UTC)
Goto Top
Hi,

also ohne jetzt viel Gehirnschmalz in eine batch zu stecken: Irfanview oder Xnview können das sehr elegant!

Viele Grüße
Member: gemini
gemini Nov 27, 2006 at 17:49:02 (UTC)
Goto Top
Hallo hugo,

das geht auch mit XP-Boardmitteln.

Markiere alle Dateien, die du umbenennen willst > Rechtsklick 'Umbenennen' > Bei einer Datei das Präfix und die Dateiendung angeben > Enter > Sicherheitsabfrage bestätigen
Voilà

Manko: Die Nummerierung erfolgt in Klammern, also urlaub2007 (1).jpg etc.

Alternative: Ein Script oder ein Tool, bspw. RenameFiles

HTH,
gemini
Member: Biber
Biber Nov 27, 2006 at 18:03:19 (UTC)
Goto Top
Da würde ich auch keinen Schmalz reinstecken.

An den CMD-Prompt, in das richtige Verzeichnis und..
>@set /a x=1000 && for %i in (*.txt) do @Set /a "x+=1">nul & <b>@ECHO</b> rename %i Urlaub2007-!x:~-3!%~xi  
<i>rename echocolon.txt Urlaub2007-001.txt
rename testjoe.txt Urlaub2007-002.txt
rename lgo.txt Urlaub2007-003.txt
rename testhidden.txt Urlaub2007-004.txt
rename default.txt Urlaub2007-005.txt</i>
...
[Das Kursive ist die Ausgabe...der "Code" nur die erste Zeile]

Okay, ich habe jetzt *.txt genommen, weil ich noch gar keine Urlaubs-.jpg's aus 2007 habe...
Und das @echo muss natürlich raus.

Als Batch je ein "%"-Zeichen mehr vor %i und %x.
Und in die erste Zeile "@echo off & setlocal EnableDelayedExpansion".

[Das ist bei mir IMMER geschaltet, deshalb geht es bei mir am Prompt.]

HTH Biber
[Edit] @gemini
Manko: Die Nummerierung erfolgt in Klammern, also urlaub2007 (1).jpg etc
Das könnte ich per Batch reparieren.... face-wink
[/Edit]
Member: erkan
erkan Nov 27, 2006 at 19:01:49 (UTC)
Goto Top
Ein sehr schönes und umfangreiches Tool, das zudem kostenlos ist ("Mailware"):

http://www.1-4a.com/rename/

sehr zu empfeheln

Gruß
Member: luximwalde
luximwalde Mar 08, 2007 at 17:31:38 (UTC)
Goto Top
Hallo biber,
ich möchte gern Deinen Code aus o.g. Beitrag zu folgendem Zweck einsetzen: mehrere .jpg-Dateien mit x-beliebigem Dateinamen sollen in das Format bild-001.jpg bild-002.jpg usw. umbenannt werden und zwar in der Reihenfolge wie sie zuvor alphabetisch fortlaufend geordnet waren. Ich habe wie folgt Dein Code als Batch-Datei verwendet:
@echo off & setlocal EnableDelayedExpansion
@set /a x=1000 && for %%i in (*.jpg) do @Set /a "x+=1">nul & rename %%i bild-!x:~-3!%%~xi  
Allerdings passiert nun folgendes Problem. Die Dateien werden beim erstmaligen Ausführen in die Nummerierung beginnend mit bild-002.jpg bild-003.jpg usw. umbenannt. -001 wird nicht berücksichtigt. Und die erste Datei ist nicht die erste wie zuvor alphabetisch geordnet, sondern die Letzte. Führe ich die Datei abermals aus, wird die Nummerierung korrekt ausgeführt. Die zuvor letzte Datei ist nun an vorletzter Stelle, und die eben Erste an letzter, wie bei erstem Ausführen.

Es wäre sehr nett, wenn Du mir einen Lösungsvorschlag posten könntest. Ich habe bereits das Forum durchforstet, allerdings keine Antwort darauf gefunden.

besten Dank und schöne Grüße
Lutz /der luximwalde
Member: Biber
Biber Mar 08, 2007 at 21:19:01 (UTC)
Goto Top
Moin luximwalde,

willkommen im Forum.

Hmmmmmmmm.
Ich habe es eben auch nochmal so nachgestellt, wie ich es damals gepostet hatte...
...works as designed.. (bei mir).

Aber ich verwette meine Sammlung der schönsten M$-Fehlermeldungen, dass das genau die Antwort ist, die Du bestimmt nicht hören wolltest...

Also - dass der CMD-Interpreter mal aus Versehen mit dem Hoch-Zählen bei 1002 statt bei 1001 anfängt, können wir selbst bei Bill's PraktikantInnen ausschliessen...

Also kann es eigentlich nur so sein, dass das Umbenennen selbst in die Grütze geht.
Das wiederum kann vier (oder mehr) Gründe haben:
- die Datei wird nicht gefunden, weil sie "Leerzeichen im Namen.jpg" heißt
- die Datei wird nicht gefunden, weil sie Umlaute im Namen hat und CHCP falsch eingestellt ist.
- die Datei wird nicht umbenannt, weil die Rechte fehlen
- die Datei wird nicht umbenannt weil eine gleichnamige Datei schon existiert

Variante 1 und 4 sind die wahrscheinlichsten.
Bitte ändere mal (zum Testen) auf:
@set /a x=1000>nul && for %%i in (*.jpg) do @Set /a "x+=1">nul & @echo rename "%%i" bild-!x:~-3!%%~xi  
..und poste mal die ersten Ausgabezeilen.

Gruss
Biber
Member: luximwalde
luximwalde Mar 08, 2007 at 22:07:48 (UTC)
Goto Top
Hi biber,

vielen Dank für die schnelle Mühe. Sehr nett. Also nach Ausführen des Batch (Deine Testversion) wird im DOS-fenster folgendes angezeigt:
rename "abcde.jpg"  bild-1.jpg  
rename "bcdef.jpg"  bild-2.jpg  
rename "cdefg.jpg"  bild-3.jpg  
rename "defgh.jpg"  bild-4.jpg  
Das ist augenscheinlich genau das gewünschte Ergebnis. Allerdings wird jetzt real nicht umbenannt. Liegt das an dem @echo vor rename?

beste Grüße
Lutz
Member: Biber
Biber Mar 09, 2007 at 06:33:25 (UTC)
Goto Top
Moin Lutz,

jepp, dass real nicht umbenannt wird, liegt an dem "echo"... sollte ja nur ein Test sein.

Also dann - Phase II:
wenn es denn bei der ersten Dateien Datei passiert, dann schränken wir es doch mal auf diese ein.
::----testbatchII.bat
@echo off & setlocal enableDelayedExpansion
set /a x=1000>nul && for %%i in (abcde.jpg) do Set /a "x+=1">nul & rename "%%i" bild-!x:~-3!%%~xi  

[Ich weiß, ist lästig, aber anders kommen wir nicht ran an den Fehler]

- Mit Glück kommt jetzt beim Rename ein Fehler auf den Bildschirm.

Gruss
Biber
Member: luximwalde
luximwalde Mar 09, 2007 at 13:08:29 (UTC)
Goto Top
Hallo Biber,
das ist in der Tat ganz seltsam. Jetzt sind wir aber einen Schritt weiter und die Erkenntnis ist folgende: die einzelne Bilddatei abcde.jpg oder bcdef.jpg oder... wird jeweils mit bild-1.jpg korrekt umbenannt. Sind aber mehrere Bilder mit dieser Namensgebeung im ordner umzubenennen, fängt es mit -2.jpg an. Ist doch seltsam. Es muss daher an der Namenskombination liegen, da in den Namen mehrere Buchstaben gleich in den anderen Namen vorkommen. Das Batch ist da scheinbar "wählerisch". Zumal es geht auch mit einer Datei nicht: Ich habe einen Namen herausgefunden, der auch als einzelne Datei sofort mit bild-2.jpg umbenannt wird: aftermidnight.jpg. Klingt fast geheimnisvoll und ist zum schmunzeln. Kannst es ja bei Dir mal testen. Was hat dieses Wort, was andere nicht haben.
Oder leidet mein Rechner oder Namensdepressionen...

Ergänzung: z.B. werden auch abc-01.jpg abc-02.jpg abc-03.jpg beginnend bei bild-2.jpg umbenannt, hingegen pic-01.jpg pic-02.jpg pic-03.jpg wird korrekt ab bild-1.jpg umbenannt. Wo kann da der Unterschied fürs batchen liegen? Wenn wir das wissen, ist es gelöst.


schöne Grüße
Lutz
Member: Biber
Biber Mar 09, 2007 at 13:34:21 (UTC)
Goto Top
Moin Lutz,

lässt sich (wie zu erwarten war) nicht bei mir reproduzieren.

>@set /a x=1000>nul && for %i in (a*.jpg) do @Set /a "x+=1">nul & @echo rename "%~dpnxi" bild-!x:~-3!%~xi  
rename "D:\temp\aftermidnight zwei.jpg" bild-001.jpg  
rename "D:\temp\aftermidnight.jpg" bild-002.jpg  
rename "D:\temp\aftermidnight.jpgx" bild-003.jpgx  
(=14:22:58  D:\temp=)
>@set /a x=1000>nul && for %i in (a*.jpg) do @Set /a "x+=1">nul & @rename "%i" bild-!x:~-3!%~xi  

(=14:23:05  D:\temp=)
>dir b*.jpg |find ".jpg"  
09.03.2007  14:19                 4 bild-001.jpg
09.03.2007  14:18                 4 bild-002.jpg
09.03.2007  14:20                 4 bild-003.jpgx

(=14:23:09  D:\temp=)
>

Ratlos guck
Vielleicht hat noch jemand eine Idee... sonst musst Du den Rechner wohl einschicken.... face-wink

Gruss
Biber
Member: luximwalde
luximwalde Mar 09, 2007 at 14:54:32 (UTC)
Goto Top
Hi Biber,

danke für Deine Geduld mit diesem "Phänomen". Mich kratzt das auch schon. Im DOS-Fenster bei der Testversion (mit echo vor rename) wird das in ALLEN Fällen immer korrekt angezeigt. Wie beschrieben jedoch beim realen Umbenennen beginnt die Bilderfolge in den speziellen Fällen mit -2.jpg. Das Umbennen auf Batch-Ebene ist wohl bis zum dem Punkt wo die Dateien umbenannt werden sollen korrekt. Ratlosigkeit, ja. Ich teste das mal auf einem anderen Rechner.

beste Grüße
Lutz