[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:
(1733 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: 5686

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

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

Aktuell

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
25.04.2019

PDF-Preflight, PDF-Editierung und Automatische Korrektur von PDF-Dateien

Impressed GmbH, Hamburg
Donnerstag, 25. Apr. 2019, 10.00 - 10.30 Uhr

Webinar

In diesem ca. halbstündigen kostenlosen 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
Veranstaltungen
26.04.2019

Äh, der Kunde hat leider kein InDesign… Aber Office!

HUSS-MEDIEN GmbH
Freitag, 26. Apr. 2019, 17.00 - 20.00 Uhr

Vortrag

Willkommen zur ersten IDUGB im Jahr 2019. Und gemäß Heikes Ansatz, dass die IDUG „mehr als InDesign“ ist, schauen wir dieses Mal ein wenig über den Tellerrand. Okay, auch wenn wir gern über Office lächeln: Es muss jetzt mal sein Egal was man von Office hält, als InDesign-Anwender*in kommt man immer wieder in Kontakt zu Word, Excel und PowerPoint. Es fängt bei Texten und Tabellen an, die in InDesign verarbeitet werden wollen, bis hin zu PowerPoint-Vorlagen im Corporate Design, die Kunden bestellen. Teil 1: Was kann Office alles, was können wir eventuell nutzen? Keine Angst: Ihr müsste jetzt nicht zum Office-Crack werden. Dann dafür gibt es ja Leute, wie Stephan! Er wird euch helfen, zeigt euch im ersten Teil des Abends maßgeblich, was Office so alles kann, was aber auch nicht. Es geht um ganz klassische Frage von InDesigner*innen – gibt es Grundlinienraster, Schnittmasken oder Sonderfarben? Daneben gib es aber auch Grundlegendes, z.B. wie man überhaupt mit der Arbeit in Office loslegt, wo man wichtige Einstellungen findet und wie dieses Office überhaupt so tickt. Wenn Ihr also mal Dokumentenvorlagen für Kunden gestaltet, kennt ihr schon die Möglichkeiten und könntet schon während der Gestaltungsphase auf die Besonderheiten eingehen. Aber Keine Angst, es gibt immer noch genug für uns in InDesign zu tun!

Vollständige Informationen und Anmeldung via https://idug-berlin.de/idugb44/

Ja

Organisator: InDesign User Group Berlin

Kontaktinformation: InDesign User Group Berlin, E-Mailmail AT idug-berlin DOT de

https://idug-berlin.de