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

7. Nov 2018, 16:47
Beitrag # 1 von 5
Bewertung:
(2692 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: 5748

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

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

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

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

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
17.10.2019

Digicomp Academy AG, Limmatstrasse 50, Zürich
Donnerstag, 17. Okt. 2019, 18.00 - 20.30 Uhr

Vortrag

Farben sind ein wichtiges Gestaltungselement in Corporate Design und Branding. Als Sinneseindruck, der von Beleuchtung, Materialeigenschaften und Kontext abhängt, ist eine Farbe jedoch schwer zu fassen. Der Verein freieFarbe setzt sich für eine offene, digitale Farbkommunikation ein und hat hierzu das HLC-Farbsystem entwickelt. Dieses hilft, zwischen Gestaltung am Computer, physischen Farbmustern und unterschiedlichen Verfahren in der Produktion eine Brücke zu schlagen. Es basiert zudem auf bestehenden ISO-Standards für die Druckindustrie.

Donnerstag, 17. Oktober 2019, 18 bis 20.30 Uhr

Ja

Organisator: Digicomp Academy AG

https://www.meetup.com/de-DE/Publishing-Group-Switzerland/events/264611769/

Freie Farbe für die digitale Zukunft
Veranstaltungen
21.10.2019 - 22.10.2019

München
Montag, 21. Okt. 2019, 09.30 Uhr - Dienstag, 22. Okt. 2019, 17.30 Uhr

Schulung, Seminar

Wer hochwertige und farbechte Ergebnisse im Digitaldruck erzielen will, der braucht umfassende Colormanagemement- und PDF-Kenntnisse. Selbst wenn die Maschine kalibriert und das Rip richtig konfiguriert ist, lassen die Ergebnisse oft zu wünschen übrig. Der Grund hierfür liegt zu 90 % in den Daten und in falsch eingestellten Anwendungsprogrammen, auch in falschen Einstellungen im Druckmenü.

Nein

Organisator: Cleverprinting.de

https://www.cleverprinting.de/zweitaegige-weiterbildung-zum-digitaldruck-operator/

Zweitägige Weiterbildung zum Digitaldruck-Operator