Tool um an Dateinamen Ordnername anzuhängen gesucht

mischaef

Kassettenkind
Teammitglied
Registriert
Aug. 2012
Beiträge
6.147
Nabend zusammen,

ich suche eine Möglichkeit, um Bildern in einem Ordner den Namen des jeweiligen Ordners anzuhängen. Das ganze soll dann so aussehen:

123
  • Bild-01.jpg
  • Bild-02.jpg
  • Bild-03.jpg

abc
  • Bild-01.jpg
  • Bild-02.jpg
  • Bild-03.jpg

Daraus soll dann

123
  • 123-Bild-01.jpg
  • 123-Bild-02.jpg
  • 123-Bild-03.jpg

abc
  • abc-Bild-01.jpg
  • abc-Bild-02.jpg
  • abc-Bild-03.jpg

werden.

Ich habe schon ein paar Rename-Programme (Bulk Rename Utility, ect) ausprobiert, nur da konnte ich entsprechende Möglichkeit nicht finden.

Vielleicht hat von euch ja jemand eine Idee, wie ich das ganze lösen könnte.

Besten dank

Michael
 
irfan view

$d-$N (das ist dein pattern m.m.n.)
 
  • Gefällt mir
Reaktionen: Asghan, tollertyp, mischaef und eine weitere Person
Das ist komplexer als es ausschaut.
Ich habe mir Rename Expert gekauft, mittels welchem man aber sehr ins Detail fürs Umbenennen gehen kann bzw. kann alles in mehrere Schritte aufgeteilt und auch in Profilen abgespeichert werden.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: tollertyp
@azereus

So einfach können manche Dinge sein!

Besten dank für die schnelle Lösung!

Michael
 
wie oft brauchst du das? Geht mit einem Bash Script recht schnell. Sollte wenn du das Windows Subsystem for Linux installierst auch unter windows gehen.
Sonst mal kurz einem mac oder Linux nutzen :)

Das ist jedenfalls deine lösung:
for filename in *; do mv -v {,$(basename "$(dirname `pwd`)")-}"$filename"; done;
nimmt alle dateien in einem ordner, holt den namen des directory oberhalb davon und haengt ihn mit - davor
* kannst du *.mp3 ändern, um bspw. nur MP3s zu erwischen.

sollten die obigen gui tools nicht helfen, das funktioniert und ich habe sogar getestet was ich getippt habe :)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Teeschlürfer, tollertyp, Demon_666 und 5 andere
So mal ganz nebenbei gefragt @mischaef

Das technisch so zu tun das im Dateinamen der momentane Ordner mit drin ist ist ja ok.
Nur was ist wenn die Dateien in einen anderen Ordner gehen? Wieder umbenennen?

Und so ganz nebenbei kommt mir wieder die Pfad-/Dateinameslänge in den Kopf.
 
Zuletzt bearbeitet:
Oder via vbs oder Total Commander oder oder :)
 
madmax2010 schrieb:
Das ist jedenfalls deine lösung:
for filename in *; do mv -v {,$(basename "$(dirname `pwd`)")-}"$filename"; done;
nimmt alle dateien in einem ordner, holt den namen des directory oberhalb davon und haengt ihn mit - davor
* kannst du *.mp3 ändern, um bspw. nur MP3s zu erwischen.

sollten die obigen gui tools nicht helfen, das funktioniert und ich habe sogar getestet was ich getippt habe :)

Ich finde es immer wieder schön, wie man mit Linux Bordmitteln Dinge vollbringen kann, die man in anderen Betriebssystemen nur mit Tools erreichen kann.
 
Iarn schrieb:
Ich finde es immer wieder schön, wie man mit Linux Bordmitteln Dinge vollbringen kann,
Powershell kann sowas mit 100% Sicherheit auch. Man muss man nur mal verstehen, was damit alles möglich ist.

Was aber IrfanView alles für lau kann, ist schon cool.
Ergänzung ()

@HITCHER_I
😅 Suzuki Hustler? 🤢
 
  • Gefällt mir
Reaktionen: niteaholic
Fusionator schrieb:
Powershell kann sowas mit 100% Sicherheit auch. Man muss man nur mal verstehen, was damit alles möglich ist.
Das ist dann halt der Unterschied. Für Linux bietet ein User die fertige Lösung und bei Powershell vermutet man, dass es auch irgendwie geht.
 
@Iarn es geht definitiv unter Windows mit ähnlicher Komplexität, nur weil die Forenposter nicht die Lösung im Kopf haben, ist Linux nicht gleich der heilige Gral ;)
Ich müsste auch erst nachschauen/googeln/ausprobieren, was bei Linux genauso der Fall wäre, wenn @madmax2010 nicht liebenswerterweise die Lösung gepostet hätte ;)
 
@Fusionator
Da ist ein falscher Link aus der Zwischenablage gekommen.
Suzuki hat kein gutes Gespür für Fahrzeugnamen ;-).
 
Zuletzt bearbeitet:
Mit Pyhton3:
Code:
#!/bin/python3


import os

i=os.getcwd().rpartition('/',)[-1]

with os.scandir(".") as it:
    for entry in it:
        if not entry.name.startswith('.') and entry.is_file():
            os.rename(entry.name, i+'-'+entry.name)
 
Zuletzt bearbeitet:
Fusionator schrieb:
Powershell kann sowas mit 100% Sicherheit auch. Man muss man nur mal verstehen, was damit alles möglich ist.
Da werden wir aber PS-Cracks brauchen die den nötigen Code auswendig (..!) in die Tastatur fließen lassen. 😉
CN8
 
Warum auswendig. Es reicht zu wissen wo es steht.

Ein Beispiel.
https://superuser.com/questions/1571699/adding-folder-names-to-filenames-using-powershell

Das Ding ist eigentlich, dass die Anforderung ein etwas ungewoehnlich ist.
Speicherpfade in Dateinamen macht man eigentlich nicht. Das ist hinfaellig wenn Dateien verschoben/kopiert werden und muss dann halt glatt gezogen werden. Pluss halt das u.U. zuschlagende Datei-/Ordnerlaengenproblem was damit erst recht provoziert werden kann.
 
  • Gefällt mir
Reaktionen: Fusionator und madmax2010
Zurück
Oben