Kann der Automatisierungsdienst den Pfad des übergeordneten Ordners abrufen?

Ich habe bereits einen Dienst, der einen Netzwerk-Datei:///-Link zu einem Netzwerkvolume über AFP erstellt, aber ich hätte gerne einen, der den übergeordneten Ordner einer Datei erstellt.

Wenn ich mit der rechten Maustaste auf eine Datei klicke, möchte ich die Möglichkeit haben, entweder den Dateipfad in die Datei oder den übergeordneten Ordner der Datei zu kopieren.

Ich würde es vorziehen, dass sich das Skript in Shell/bash und nicht in AppleScript befindet, und mein Traumszenario wäre eine Möglichkeit, sowohl den Dateipfad als auch den übergeordneten Ordner des Dateipfads in die Zwischenablage zu kopieren. Wenn ich es dann eingefügt habe, sieht es so aus:

Dateipfad: file:///Volume/parentfolder/file.pdf Übergeordneter Ordner: file:///Volume/parentfolder

Am liebsten würde ich in einer Aktion vier Textzeilen in der Zwischenablage erhalten, aber die zweite Hälfte (übergeordneter Ordner) ist die, die mir derzeit fehlt.

@bmike, ich verstehe nicht, wie Sie das OP dahingehend interpretiert haben, dass Sie den letzten Absatz so geändert haben, dass er "Ich möchte vorzugsweise vier Textzeilen in einer Aktion in der Zwischenablage erhalten" enthält, wenn ich sehe, dass eine Textzeile angezeigt wird. Also File Path: file:///Volume/parentfolder/file.pdf Parent Folder: file:///Volume/parentfolderübersehe ich etwas oder hast du etwas falsch interpretiert? Danke.
Ja. Ich habe möglicherweise eine schlechte Bearbeitung @user3439894 vorgenommen - können Sie es beheben?

Antworten (1)

Erstellen Sie einen neuen Automator-Dienst mit den folgenden Einstellungen:

  • Dienst empfängt ausgewählte [Dateien oder Ordner] in [Finder]

Fügen Sie eine Aktion „Shell-Skript ausführen“ mit den folgenden Einstellungen hinzu:

  • Shell [/bin/bash]                Eingabe übergeben [als Argument]

Ersetzen des gesamten Standardcodes durch den folgenden Beispielcode :

toTheClipboard="File Path: file://$(sed 's: :%20:g' <<< "$1") Parent Folder: file://$(dirname "$1" | sed 's: :%20:g')"
pbcopy<<<"$toTheClipboard"

Speichern Sie den Automator-Dienst , wählen Sie dann im Finder ein Element aus und klicken Sie mit der rechten Maustaste, um den Dienst aus dem Kontextmenü Dienste auszuwählen . Der Dienst ist auch über das Menü Finder > Dienste verfügbar .

Sie können dann aus der Zwischenablage an der gewünschten Stelle einfügen.


Hinweis: Der Beispielcode ist genau das und verwendet keine Fehlerbehandlung und soll nur eine von vielen Möglichkeiten zeigen, eine Aufgabe zu erfüllen. Es liegt immer in der Verantwortung des Benutzers, eine geeignete Fehlerbehandlung nach Bedarf/Wunsch hinzuzufügen/zu verwenden .

Das ist perfekt, außer dass die Leerzeichen durch %20 ersetzt werden müssten, damit sie korrekt verknüpft werden können. Ich werde versuchen, etwas zu graben, um zu sehen, ob ich es herausfinden kann.
Ich habe versucht, aber ich war erfolglos bei dem Versuch, die Leerzeichen in dem mit %20 generierten Text zu entfernen. Ich würde mich sehr über ein Update des von Ihnen bereitgestellten Codes ohne die Leerzeichen freuen. Vielen Dank!
@Brave_Buffalo, ich habe es aktualisiert, um Leerzeichen durch %20 zu ersetzen.