Kopieren von Dateien in die Zwischenablage mit Applescript

11

Oft befinde ich mich an der Befehlszeile und möchte Dateien in die Zwischenablage kopieren, damit ich sie als Anhänge in Mail einfügen kann. Wenn ich eine Bilddatei habe, image1.pngkann ich dies mit erreichen

osascript -e 'tell app "Finder" to set the clipboard to ( POSIX file "image1.png" )'

Wenn ich den obigen Befehl ausführe und dann eine neue Nachricht in Mail öffne und Befehl V drücke, wird die Bilddatei als Anhang eingefügt. Beachten Sie, dass dies pbcopyhier anscheinend keine Lösung ist, da dies den Inhalt der Datei kopieren und beim Einfügen mit Befehl V zu Junk führen würde.

Meine Frage ist, wie ich dasselbe mit mehreren Dateien machen kann. Angenommen, ich möchte beide image1.pngund einfügen image2.png. Dies ist im Finder trivial (wählen Sie beide aus, Befehl C, wechseln Sie dann zu Mail und Befehl V; voila, beide Dateien werden als Anhänge angezeigt)… aber wie kann ich dies über die Befehlszeile tun?

JCOidl
quelle
1
Dies ist so ein Schmerz im Tuckus von AppleScript. Ich würde empfehlen, einen der skriptfähigen Zwischenablage-Manager auszuwählen oder Cocoa NSPasteboard über Ihre bevorzugte Skriptsprache zu verwenden. Eine andere Möglichkeit besteht darin, eine Ordneraktion zu erstellen, damit Sie Dateien in den Ordner kopieren und dann vom Finder alle Elemente im Ordner auswählen, in die Zwischenablage kopieren und den Ordner leeren können. Wenn Sie die Dateien nur als Anhänge per E-Mail versenden möchten, können Sie alternativ Ihre Liste durchlaufen und E-Mail → neue ausgehende Nachricht → Inhalt → E-Mail-Anhänge erstellen.
Art Taylor
1
@ ArtTaylor, danke für die Optionen. Ich arbeite an einem Applescript, das das letzte tut, was Sie erwähnt haben, im Grunde etwas, das Mail make new attachment with properties {file name:this_file} at after last paragraphmit einer Wiederholungsschleife dazu auffordert argv. Ich frage mich, ob die Antwort auf die ursprüngliche Frage tatsächlich einfach "Sie können dies nicht mit Applescript tun" lautet.
JCOidl
Ich habe wirklich dieses Gefühl, aber ich hasse es zu sagen "kann nicht". Ich denke, die Schwierigkeit besteht wirklich darin, eine allgemeine Lösung zu erstellen, da die Pasteboard mehrere Versionen des Inhalts der Zwischenablage enthält, sodass der Paste-Empfänger eine geeignete Darstellung auswählen kann.
Art Taylor

Antworten:

1

Dies ist nicht ganz perfekt für das, was Sie wollen, aber ich denke, es könnte Sie näher bringen. Quicksilver verfügt über ein Befehlszeilenprogramm. Nach der Installation können Sie Dateien von der Befehlszeile an die Quicksilver-App weiterleiten und von dort aus als Anhänge in Mail senden.

Aktivieren Sie Quicksilver, um das Quicksilver-Befehlszeilentool zu installieren. Navigieren Sie dann zu Quecksilber> Einstellungen, um das Fenster Einstellungen zu öffnen. Klicken Sie oben rechts im Fenster auf Einstellungen. Klicken Sie links auf Command Line Tool und installieren Sie.

In Terminal können Sie eingeben

qs path/to/file1 path/to/file2 path/to/file3 path/to/file4

Durch Drücken der Eingabetaste werden diese Dateien an den ersten Bereich von Quicksilver gesendet. Drücken Sie die Tabulatortaste, um zum Aktionsbereich zu wechseln und die Aktion E-Mail / Neue E-Mail mit Anhang auszuwählen. Drücken Sie die Eingabetaste. Eine neue E-Mail mit den ausgewählten Dateien sollte angezeigt werden.

Beachten Sie, dass Sie auch die Mail- und Befehlszeilen-Plugins in Quicksilver installieren müssen (Quicksilver> Einstellungen> Plug-Ins).

Sojourner
quelle
1

Sie können so etwas tun wie:

set f to {(POSIX file "/path/to/a/folder/a.png"), (POSIX file "/path/to/another/folder/b.png")}
tell application "Finder"
    try -- to delete any old temp folder
        delete folder "AS_mailCopy" of (path to temporary items)
    end try
    set tmp to make new folder at (path to temporary items) with properties {name:"AS_mailCopy"}
    duplicate f to tmp
    select files of tmp
    activate
    tell application "System Events" to keystroke "c" using command down
    delete tmp
end tell

Jetzt enthält Ihr Pasteboard mehrere Dateien (aus verschiedenen Ordnern), die Sie in Ihre E-Mails einfügen können.

Bibou
quelle
-5

Warum nicht einfach per Drag & Drop? Manchmal werden Technikfreaks zu komplex und vergessen die einfachen Dinge, die ein Mac tun kann.

Zo219
quelle
Beeindruckend. Drei Personen, die Einwände gegen Drag & Drop haben.
Zo219
3
Nein, Leute, die gegen eine Antwort von "Warum nicht einfach per Drag & Drop?" auf eine Frage, die fragt, wie man etwas mit AppleScript macht.
Duncan Babbage