[GastForen Programmierung/Entwicklung AppleScript Ordnerstruktur aus Teil-Dateinamen erstellen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Ordnerstruktur aus Teil-Dateinamen erstellen

Klaus79
Beiträge gesamt: 306

7. Nov 2018, 16:47
Beitrag # 1 von 5
Bewertung:
(1065 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Forum,
ich bearbeite gerade mein erstes Applescript und bitte um Nachsicht wenn meine Fragen noch anfängerhaft sind.

Ich möchte Musiktitel in zu erstellende Ordner legen. Die Titel haben immer folgende Struktur:

Celtic Woman - May It Be.mp3
Everlast - This Kind of Lonely.mp3
Bryan Adams - Summer of '69.mp3
Everlast - Maybe.mp3
u.s.w.

Es sollten nun die Ordner Celtic Woman, Bryan Adams und Everlast angelegt und die Dateien in die jeweiligen Ordner verschoben werden. Folgendes Script habe ich bisher zusammengestellt:

tell application "Finder"
set theFolder to choose folder --Ordner mit den Dateien auswählen
set allFiles to every item of theFolder --alle Dateien im Ordner abfragen
repeat with theFile in allFiles
set theName to do shell script "name=\"" & name of theFile & "\"; echo ${name%.*}" --Den Namen der Datei ohne Endung abfragen
try
set newFolder to make new folder at theFolder with properties {name:theName} --neuen Ordner erstellen
end try
move theFile to newFolder --Datei verschieben
end repeat
display dialog "Fertig!"
end tell

Dabei habe ich noch zwei ungelöste Probleme. Zum einen wird der Ordnername bisher aus dem ganzen Dateinamen gebildet und nicht nur aus dem Interpreten, und zum zweiten müsste ein bereits angelegter Ordner erkannt und nicht doppelt angelegt werden.

Kann mir da jemand helfen?

Gruß
Klaus
X

Ordnerstruktur aus Teil-Dateinamen erstellen

Hans Haesler
  
Beiträge gesamt: 5673

7. Nov 2018, 17:55
Beitrag # 2 von 5
Beitrag ID: #567403
Bewertung:
(1047 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Klaus,

herzlich willkommen im AppleScript-Forum auf HDS! :-)

Nun, für ein erstes AppleScript ist das schon eine happige Aufgabe. Gratulation zu Deinem Versuch.

Ein paar Bemerkungen:
– 'choose folder' und 'display dialog' sind Befehle der "StandardAdditions" und nicht des "Finders".
Deshalb diese beiden Zeilen ausserhalb des tell-Finder-Blocks verschieben.
– Zum Auflisten der Dateien nicht 'item' benutzen, sondern 'file'. Sonst werden bestehende Ordner auch erfasst.
– Zum Ausziehen des zukünftigen Ordnernamens die 'AppleScript's text item delimiters' einsetzen.
Wenn diese als " - " bestimmt werden, kann das erste Text-Element herausgelöst und einer Variablen zugewiesen werden.
– Die Prüfung 'if not (exists folder folName of folder theFolder)' stellt sicher, dass bei bestehendem Ordner nicht versucht wird, einen zweiten anzulegen.
– Wenn der neue Ordner erstellt ist, wird die Datei hineinverschoben.
– Diese Aktion ist in einem 'try'-Wickel, um zu vermeiden, dass es eine Fehlermeldung absetzt, wenn eine gleichnamige Datei schon vorhanden ist.
– Wenn der Ordner schon existiert, wird die Datei in diesen verschoben.

Code
set theFolder to choose folder # Ordner mit den Dateien auswählen 

set AppleScript's text item delimiters to " - " # den Trenner bestimmen

tell application "Finder"
set allFiles to every file of theFolder # alle Dateien im Ordner abfragen
repeat with theFile in allFiles
set theName to name of theFile # der Name der Datei
set folName to text item 1 of theName # das erste Text-Element des Namens
if not (exists folder folName of folder theFolder) then
set newFolder to make new folder at theFolder with properties {name:folName} # neuen Ordner erstellen
try
move theFile to newFolder # Datei verschieben
end try
else
try
move theFile to folder folName of folder theFolder # Datei verschieben
end try
end if
try
end try
end repeat
end tell

set AppleScript's text item delimiters to {""} # den Trenner zurücksetzen

display dialog "Fertig!" buttons "OK" default button 1 with icon 1 giving up after 1

Hier funktioniert es wie erwartet. Hoffentlich bei Dir auch.

Gruss, Hans


als Antwort auf: [#567402]

Ordnerstruktur aus Teil-Dateinamen erstellen

Klaus79
Beiträge gesamt: 306

7. Nov 2018, 18:49
Beitrag # 3 von 5
Beitrag ID: #567407
Bewertung:
(1037 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wow Hans, funktioniert einwandfrei! Herzlichen Dank!
Das erspart mir eine Menge an Arbeit.

Bei meiner Recherche war ich auch auf delimiters gestoßen, aber die Syntax war mir natürlich nicht geläufig. Ich komme mehr von Excel und VBA (als Hobby).

Gibt es auch noch die Möglichkeit das Ganze als Droplet zu speichern? Bisher habe eine App erstellt, aber irgendwo etwas von "on open" gelesen, aber nicht umsetzen können. Wäre aber nicht so wichtig, ich bin mit diesem Ergebnis schon vollauf zufrieden!

Herzlichen Dank noch einmal, Hans.

Gruß
Klaus


als Antwort auf: [#567403]

Ordnerstruktur aus Teil-Dateinamen erstellen

Hans Haesler
  
Beiträge gesamt: 5673

7. Nov 2018, 19:18
Beitrag # 4 von 5
Beitrag ID: #567408
Bewertung:
(1027 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Klaus,

bitte sehr. Super, dass es auf Anhieb klappte.

Ein Droplet? Das wollte ich Dir vorschlagen. Bitte, hier:

Code
(*MusikOrdner.app 
Zum Einordnen von Musik-Dateien
*)

on open droppedFolder
set theFolder to item 1 of droppedFolder as Unicode text # der gedroppte Ordner
set AppleScript's text item delimiters to " – " # den Trenner bestimmen

tell application "Finder"
set allFiles to every file of folder theFolder # alle Dateien im Ordner abfragen
repeat with theFile in allFiles
set theName to name of theFile # der Name der Datei
set folName to text item 1 of theName # das erste Text-Element des Namens
if not (exists folder folName of folder theFolder) then
set newFolder to make new folder at theFolder with properties {name:folName} # neuen Ordner erstellen
try
move theFile to newFolder # Datei verschieben
end try
else
try
move theFile to folder folName of folder theFolder # Datei verschieben
end try
end if
try
end try
end repeat
end tell

set AppleScript's text item delimiters to {""} # den Trenner zurücksetzen

display dialog "Fertig!" buttons "OK" default button 1 with icon 1 giving up after 1
end open

Dieses Script – im Format "Programm" gespeichert –, ist gezippt unten angehängt.

Zur Ausführung: Den Ordner, welcher die Dateien enthält, auf das Icon des Droplets ziehen.
Der Ordner kann schon benannte Ordner enthalten. Dateien werden im entsprechenden Ordner versorgt. Oder in einem neuen, welcher angelegt wird.

Gruss, Hans


als Antwort auf: [#567407]
Anhang:
MusikOrdner.zip (56.4 KB)

Ordnerstruktur aus Teil-Dateinamen erstellen

Klaus79
Beiträge gesamt: 306

7. Nov 2018, 20:07
Beitrag # 5 von 5
Beitrag ID: #567410
Bewertung:
(1014 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

was soll ich dazu noch sagen. Einfach PERFEKT!
Das können bestimmt auch noch andere Leute gut gebrauchen.

Vielen Dank auch für Deine Anmerkungen zum Scripten.
Ich werde zwar wohl nicht mehr der große Applescripter werden,
aber wer weis ...

Eine schöne Restwoche für Dich
Danke

Klaus


als Antwort auf: [#567408]
X

Aktuell

PDF / Print
pdfChip

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
24.01.2019

Impressed GmbH, Hamburg
Donnerstag, 24. Jan. 2019, 10.00 - 10.30 Uhr

Webinar

Wir stellen Ihnen in diesem kostenlosen ca. halbstündigen Webinar das neue Enfocus Switch PDF Review Modul zur Freigabe von PDF-Druckdaten vor. Wir zeigen Ihnen, wie Sie die Lösung in bestehende Enfocus Switch-Workflows einbinden und somit die Freigabeprozesse mit Ihren Kunden erheblich beschleunigen können.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Detlef Grimm, E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=250

Enfocus Switch PDF Review Modul
Veranstaltungen
24.01.2019

Hochschule der Medien, Stuttgart
Donnerstag, 24. Jan. 2019, 18.00 Uhr

Vortrag

Wie jedes Jahr im Januar besucht uns Monika Gause mit Neuigkeiten zu Illustrator und aus der restlichen Publishing-Welt. Der Abend ist pickepacke voll: Zunächst zeigt uns Monika alles Neue, was uns Adobe in Illustrator 2019 gepackt hat. Anschließend zeigt sie verschiedenen Möglichkeiten der realistischen Darstellung: Verläufe, Verlaufsgitter, Angleichungen und wie man sie in den Griff bekommt. Dazu gehört auch die Vorstellung des kostenlosen Plugin Mesh Tormentor. Abgeschlossen wird mit dem "Best-of" aus einem Infografik/Dokumentation-Seminar, das Monika letztes Jahr in München gehalten hat. Es ist nicht nötig Tickets zu kaufen oder eine Registrierung durchzuführen. Komme einfach vorbei! Wir freuen uns Katharina Frerichs und Christoph Steffens

Kostenlos, Ticketkauf oder Anmeldung ist nicht nötig.

Nein

Organisator: IDUG Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailchristoph.steffens AT gmail DOT com

Illustrator mit Monika Gause
Hier Klicken