Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Ordnerstruktur via Script erstellen

Ordnerstruktur via Script erstellen

Windwusel
Windwusel10.09.2213:01
Ich möchte eine bestimmte Ordnerstruktur per Rechtsklick o. ä. im Finder erstellen. Dies müsste per Script machbar sein und dieses müsste man bspw. über das Dienste-Menü via Rechtsklick ansprechen können. Ziel ist es an einem bestimmten aber immer anderem Pfad (also quasi dort wo ich gerade rechtsklicke und das Script ausführe) immer die selbe Ordnerstruktur nach Bedarf zu erstellen.

Über das Terminal wäre dies mit "mkdir" machbar, wie es allerdings über ein immer ausführbares Script funktioniert weiß ich nicht. Daher bin ich für eine Lösung dankbar

Grüße
„MacBook Pro mit Touch Bar (15-inch, 2018), iPhone 12 Pro Max und iPhone X, AirPods (1. Gen) & AirPods Pro (1. Gen), Apple TV 4K (1. Gen) und HomePod (1. Gen)“
+2

Kommentare

Nebula
Nebula04.10.2213:17
Windwusel
Nebula das Script sieht vielversprechend aus und funktioniert auch gut, jedoch bekomme ich es nur über die Touchbar angesprochen und nicht wie bei Installation versprochen auch im Dienste-Menü. Hätte ich kein entsprechendes Gerät würde ich es nicht ausführen können. Weißt du wie ich dies konfigurieren kann?

Da ich nicht den Dienst nutze, habe ich das mal versucht nachzuvollziehen. Bei mir fehlt er nach der Installation ebenfalls im Dienstemenü. Ich habe den Workflow dann geöffnet und einfach mit Cmd+S neu gespeichert. Danach war der Dienst plötzlich verfügbar.
„»Wir werden alle sterben« – Albert Einstein“
0
Weia
Weia04.10.2213:37
marm
Für mich ist das die genau passende Analogie.
Datenbank A verhält sich zu Datenbank B wie Postfach A zu Postfach B.
Es gibt einen Unterschied, der für mich entscheidend ist: Postfach A und Postfach B befinden sich an derselben Stelle des Dateisystems, ~/Library/Mail, und dieser Ort ist für den Nutzer zudem opak, weil normalerweise gar nicht sichtbar. Datenbank A und Datenbank B hingegen sind aus Nutzersicht wohlgetrennte Dokumente, die sie gezielt an verschiedenen Stellen des für sie sichtbaren Dateisystems ablegen können. Keine andere App in macOS ist dokumentzentriert, zeigt in einem Fenster aber Aspekte verschiedener Dokumente. Das widerspricht einfach elementaren GUI-Richtlinien von macOS. Mail hingegen ist nicht dokumentzentriert, da geht das.
„🦖The dinosaurs invented Jesus to test our confidence in science“
0
Macmissionar09.11.2214:00
Hallo Windwusel,

interessant, wie solch eine eigentlich eindeutige Frage immer zu den wildesten Diskussionen und für mich auch seltsamen Lösungsansätzen führt. Das ist eine klassische Aufgabe für AppleScript.
Und Deine Lösung ist auch einfach nachvollziehbar, denn Du möchtest vermutlich in Deiner (übrigens auch von mir bevorzugten) Listenansicht:
• wenn eine Datei ausgewählt ist, den Mutterordner dieser Datei verwenden
• wenn ein Ordner ausgewählt ist, die Struktur darunter, also innerhalb dieses Ordners haben.

Und da Du offenbar nicht wirklich selbst Skripte erstellen oder ändern möchtest, und damit es leicht anpaßbar ist, verwendet das folgende Script die Vorlage Ordnertemplate innerhalb Deines Dokumentenordners. Somit kannst Du auch Etiketten vergeben, die dann einfach mit genommen werden.

Also, das folgende Script in den Skripteditor kopieren, als Programm sichern (App), ruhig bearbeitbar lassen und dann zur leichten Ausführung mit gedrückter Befehlstaste in die Titelleiste Deines Finders ziehen.

Du siehst, ich habe seit Jahren zwei von mir erstelle AppleScript-Programme zur ständigen Verfügung, einmal eines, um das Finder-Fenster zu aktualisieren (da es im Netz manchmal nicht zuverlässig ist) und einmal, um den gerade ausgewählten Ort schnell im Terminal aufzurufen.
Ein Icon kann entweder vernünftig per icns-Datei dem Progrämmchen im Programmpaket gegeben werden oder schnell via Zwischenablage über den Datei-Info-Dialog (Apfel+I).
property vstring : "1.0"
property progname : "Ordnerstrukturkopierer"
property titel : progname & " v" & vstring

tell application "Finder"
    if (count (selection as list)) is greater than 0 then
        set ort to (item 1 of (selection as list) as alias)
    else
        tell window 1 to set ort to (target as alias)
    end if
    if (text -1 of (ort as string)) is not ":" then set ort to (container of ort) as alias
    try
        duplicate (every item of ((((path to "docs") & "Ordnertemplate:") as string) as alias)) to ort without replacing and exact copy
    on error fehler number fehlernummer
        if fehlernummer is not -15268 then # Objekt(e) gibt es schon
            tell me to display dialog "Beim Kopieren Deiner gewünschten Ordnerstruktur ist ein Fehler aufgetreten:" & return & return & fehler & " [" & fehlernummer & "]" & return & return & "Hast Du einen Ordner exakten Namens Ordnertemplate innerhalb Deines Dokumentenordners (User-Homeverzeichnis) liegen und im ausgewählten Verzeichnis Schreibrechte?" & return & return & "Versuche es evtl. noch einmal." buttons {"Ok"} default button 1 giving up after 42 with title titel with icon 2
        end if
    end try
end tell
„A Mac is like a Wigwam: No Windows, no Gates, no Backdoors, Peace, Harmony – and an Apache inside.“
+1
Windwusel
Windwusel11.11.2216:19
Macmissionar
Hallo Windwusel,

interessant, wie solch eine eigentlich eindeutige Frage immer zu den wildesten Diskussionen und für mich auch seltsamen Lösungsansätzen führt. Das ist eine klassische Aufgabe für AppleScript.
Und Deine Lösung ist auch einfach nachvollziehbar, denn Du möchtest vermutlich in Deiner (übrigens auch von mir bevorzugten) Listenansicht:
• wenn eine Datei ausgewählt ist, den Mutterordner dieser Datei verwenden
• wenn ein Ordner ausgewählt ist, die Struktur darunter, also innerhalb dieses Ordners haben.

Und da Du offenbar nicht wirklich selbst Skripte erstellen oder ändern möchtest, und damit es leicht anpaßbar ist, verwendet das folgende Script die Vorlage Ordnertemplate innerhalb Deines Dokumentenordners. Somit kannst Du auch Etiketten vergeben, die dann einfach mit genommen werden.

Also, das folgende Script in den Skripteditor kopieren, als Programm sichern (App), ruhig bearbeitbar lassen und dann zur leichten Ausführung mit gedrückter Befehlstaste in die Titelleiste Deines Finders ziehen.

Du siehst, ich habe seit Jahren zwei von mir erstelle AppleScript-Programme zur ständigen Verfügung, einmal eines, um das Finder-Fenster zu aktualisieren (da es im Netz manchmal nicht zuverlässig ist) und einmal, um den gerade ausgewählten Ort schnell im Terminal aufzurufen.
Ein Icon kann entweder vernünftig per icns-Datei dem Progrämmchen im Programmpaket gegeben werden oder schnell via Zwischenablage über den Datei-Info-Dialog (Apfel+I).
property vstring : "1.0"
property progname : "Ordnerstrukturkopierer"
property titel : progname & " v" & vstring

tell application "Finder"
    if (count (selection as list)) is greater than 0 then
        set ort to (item 1 of (selection as list) as alias)
    else
        tell window 1 to set ort to (target as alias)
    end if
    if (text -1 of (ort as string)) is not ":" then set ort to (container of ort) as alias
    try
        duplicate (every item of ((((path to "docs") & "Ordnertemplate:") as string) as alias)) to ort without replacing and exact copy
    on error fehler number fehlernummer
        if fehlernummer is not -15268 then # Objekt(e) gibt es schon
            tell me to display dialog "Beim Kopieren Deiner gewünschten Ordnerstruktur ist ein Fehler aufgetreten:" & return & return & fehler & " [" & fehlernummer & "]" & return & return & "Hast Du einen Ordner exakten Namens Ordnertemplate innerhalb Deines Dokumentenordners (User-Homeverzeichnis) liegen und im ausgewählten Verzeichnis Schreibrechte?" & return & return & "Versuche es evtl. noch einmal." buttons {"Ok"} default button 1 giving up after 42 with title titel with icon 2
        end if
    end try
end tell

Danke für dein Script. Allerdings möchte ich keine Ordner kopieren sondern neue erstellen. Wäre dies auch machbar? Dann könnte dies auch eine saubere Lösung für mich sein!
„MacBook Pro mit Touch Bar (15-inch, 2018), iPhone 12 Pro Max und iPhone X, AirPods (1. Gen) & AirPods Pro (1. Gen), Apple TV 4K (1. Gen) und HomePod (1. Gen)“
0
Macmissionar15.11.2212:40
Windwusel
Danke für dein Script. Allerdings möchte ich keine Ordner kopieren sondern neue erstellen. Wäre dies auch machbar? Dann könnte dies auch eine saubere Lösung für mich sein!
Windwusel
Ich möchte eine bestimmte Ordnerstruktur per Rechtsklick o. ä. im Finder erstellen. Dies müsste per Script machbar sein und dieses müsste man bspw. über das Dienste-Menü via Rechtsklick ansprechen können. Ziel ist es an einem bestimmten aber immer anderem Pfad (also quasi dort wo ich gerade rechtsklicke und das Script ausführe) immer die selbe Ordnerstruktur nach Bedarf zu erstellen.

Also langsam verläßt es mich irgendwie. Hast Du überhaupt einmal die Sache ausprobiert? Schon einmal darüber nachgedacht, daß die Kopie eines leeren Ordners bzw. einer beliebigen Struktur exakt dasselbe ist wie ein neuer Ordner? Inwiefern erfüllt mein Tool, welches ich für mich hier übrigens noch ausgebaut habe auf verschiedene Auswahlen, nicht genau das, was Du eingangs gefragt hast?
„A Mac is like a Wigwam: No Windows, no Gates, no Backdoors, Peace, Harmony – and an Apache inside.“
0
Nebula
Nebula15.11.2212:50
Das Mac & i-Skript macht das auch über leere Ordner. Das hat den Vorteil, dass man sich die gewünschte Struktur leicht im Finder anlegen und ohne Skriptänderungen anpassen kann. Zudem lassen sich damit verschiedenen Strukturen für unterschiedliche Zwecke anlegen und bei Bedarf sogar Dateivorlagen mit integrieren.
„»Wir werden alle sterben« – Albert Einstein“
0
marm15.11.2213:05
Macmissionar
interessant, wie solch eine eigentlich eindeutige Frage immer zu den wildesten Diskussionen und für mich auch seltsamen Lösungsansätzen führt.
Tja, mit meinem seltsamen Lösungsansatz über Kurzbefehl geht es jedenfalls auch. In meiner letzten Version werden die Namen der Ordner abgefragt, aber genauso gut ließen sie sich auch im Kurzbefehl definieren.
Macmissionar
Inwiefern erfüllt mein Tool, welches ich für mich hier übrigens noch ausgebaut habe auf verschiedene Auswahlen, nicht genau das, was Du eingangs gefragt hast?
Damit muss man leben, wenn es mehrere Lösungsansätze gibt.
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.