[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: 305

7. Nov 2018, 16:47
Beitrag # 1 von 5
Bewertung:
(219 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
Hier Klicken X

Ordnerstruktur aus Teil-Dateinamen erstellen

Hans Haesler
  
Beiträge gesamt: 5659

7. Nov 2018, 17:55
Beitrag # 2 von 5
Beitrag ID: #567403
Bewertung:
(201 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: 305

7. Nov 2018, 18:49
Beitrag # 3 von 5
Beitrag ID: #567407
Bewertung:
(191 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: 5659

7. Nov 2018, 19:18
Beitrag # 4 von 5
Beitrag ID: #567408
Bewertung:
(181 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: 305

7. Nov 2018, 20:07
Beitrag # 5 von 5
Beitrag ID: #567410
Bewertung:
(168 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

Affinity

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
22.11.2018

In dieser Veranstaltung kombinieren wir Emotion und Ratio, Gestaltung und Rechtschreibung.

Hochschule der Medien, Stuttgart
Donnerstag, 22. Nov. 2018, 18.00 - 20.00 Uhr

Vortrag

Sven Tillack und Steffen Knöll vom mehrfach ausgezeichneten "Studio Tillack Knoell", Stuttgart, (studiotillackknoell.com) geben einen Einblick in die Arbeit in der visuellen Kommunikation. Ihr Arbeitsfeld ist digitales und analoges, von visuellen Erscheinungsbildern bis hin zu kommunizierender Grafik im Raum. Besondere Erfahrungen hat Sven bei der Arbeit mit Risographie gemacht, Steffen setzt sich seit längerem mit Grafik im Raum auseinander. Auch über diese Projekte werden sie berichten. Lasst euch von ihnen, ihrem Vortrag und ihrer Arbeit inspirieren. Etienne Roth ist Computerlinguist. Er hat die Duden-Korrekturlösungen bereits als Projektleiter und Produktmanager beim Dudenverlag mitentwickelt. Bei EPC betreut er das Lexikon und die Grammatik(fehler)analyse der Korrekturengine. Außerdem ist er Produktmanager für die Duden-Integration in Adobe InDesign. Bei EPC werden die professionellen Duden-Korrekturlösungen weiterentwickelt, vertrieben und gewartet. Dazu gehören Rechtschreib- und Grammatikkorrektur, Stilprüfung und Thesaurus sowie Werkzeuge zur Wörterbuchpflege, lokal und in Netzwerkumgebungen. Die Duden-Rechtschreibprüfung und Silbentrennung sind seit Version 13 (CC 2018) ein integraler Teil von Adobe InDesign. Viele Kunden vermissen aber die bewährte Grammatikprüfung. Der Duden Korrektor CC bringt die beste Grammatikprüfung für die deutsche Sprache zurück nach InDesign und InCopy. Er enthält außerdem die Stilprüfung und den Thesaurus von Duden. Verlosung: Wir verlosen wieder Software, Bücher und Fachzeitschriften im Wert von über 1000 Euro. Neben dem bekannten "CC-Abo für ein Jahr" nun auch ein "Foto-Abo für ein Jahr mit 1 TB Speicher" und brandneu "10 Bilder pro Monat von Adobe Stock für ein Jahr". Die Firma EPC verlost eine Lizenz "Duden Korrektor CC"! Mach Werbung und bring gerne Freunde und Kollegen mit! Wir freuen uns auf Dich. Katharina Frerichs und Christoph Steffens

Nein

Organisator: IDUG Stuttgart

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

idugs51.eventbrite.com

Veranstaltungen
29.11.2018

Impressed GmbH, Hamburg
Donnerstag, 29. Nov. 2018, 10.00 - 10.30 Uhr

Webinar

In diesem ca. halbstündigen Webinar stellen wir Ihnen die Neuerungen in der Version 2018 von Enfocus PitStop Pro vor.

Ja

Organisator: Impressed GmbH

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

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

Enfocus PitStop 2018