Kopiowanie plików do schowka za pomocą AppleScript

11

Często znajduję się w wierszu poleceń i chcę skopiować pliki do schowka, aby móc wkleić je jako załączniki w programie Mail. Jeśli mam plik obrazu image1.png, mogę to zrobić za pomocą

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

Jeśli wykonam powyższe polecenie, a następnie otworzę nową wiadomość w programie Mail i naciśnie polecenie V, plik obrazu zostanie wklejony jako załącznik. Zauważ, że pbcopynajwyraźniej nie jest to rozwiązanie tutaj, ponieważ spowodowałoby to skopiowanie zawartości pliku i spowodowałoby niepotrzebne śmieci po wklejeniu za pomocą polecenia V.

Moje pytanie brzmi: jak mogę zrobić to samo z wieloma plikami? Załóżmy, że chcę wkleić oba image1.pngi image2.png. Jest to trywialne z Findera (wybierz je oba, polecenie C, a następnie przełącz na Mail i polecenie V; voila, oba pliki pojawiają się jako załączniki)… ale jak mogę to zrobić z wiersza poleceń?

JCOidl
źródło
1
To TAKIEGO kłopot z AppleScript. Polecam wybranie jednego ze skryptowych menedżerów schowka lub użycie Cocoa NSPasteboard za pośrednictwem twojego ulubionego języka skryptowego. Inną opcją może być utworzenie akcji folderu, aby można było skopiować pliki do folderu, a następnie pozwolić Finderowi wybrać wszystkie elementy w folderze, skopiować je do schowka i opróżnić folder. Jeśli chcesz tylko wysłać pliki pocztą e-mail jako załączniki, jedną z alternatyw jest iteracja listy i utworzenie aplikacji Poczta → nowa wiadomość wychodząca → treść → załączniki do wiadomości.
Art Taylor
1
@ArtTaylor, dziękuję za opcje. Pracuję nad Applescript, który robi ostatnią rzecz, o której wspomniałeś, w zasadzie coś, co powie Mailowi make new attachment with properties {file name:this_file} at after last paragraph, używając pętli powtarzania argv. Zastanawiam się jednak, czy odpowiedź na pierwotne pytanie brzmi po prostu: „nie można tego zrobić za pomocą Applescript”.
JCOidl
Naprawdę mam to uczucie, ale nie znoszę mówić „nie mogę”. Myślę, że trudność polega na stworzeniu ogólnego rozwiązania, ponieważ Pasteboard zawiera kilka wersji zawartości schowka, pozwalając adresatowi wkleić wybrać odpowiednią reprezentację.
Art Taylor,

Odpowiedzi:

1

Nie jest to idealne rozwiązanie do tego, czego chcesz, ale myślę, że może cię to przybliżyć. Quicksilver ma narzędzie wiersza poleceń. Po zainstalowaniu możesz przesyłać pliki z wiersza polecenia do aplikacji Quicksilver, a następnie wysyłać je jako załączniki w programie Mail.

Aby zainstalować narzędzie wiersza polecenia Quicksilver, aktywuj Quicksilver. Następnie przejdź do Quicksilver> Preferencje, aby otworzyć okno preferencji. Kliknij Preferencje w prawym górnym rogu okna. Po lewej stronie kliknij Narzędzie wiersza polecenia i zainstaluj.

W Terminalu będziesz mógł pisać

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

Naciśnięcie Enter spowoduje wysłanie tych plików do pierwszego panelu Quicksilver. Naciśnij klawisz Tab, aby przejść do okienka akcji i wybierz akcję Poczta / Nowy e-mail z załącznikiem. Naciśnij Enter, a pojawi się nowy e-mail z wybranymi plikami.

Pamiętaj, że będziesz musiał także zainstalować wtyczki Mail i Command Line w Quicksilver (Quicksilver> Preferencje> Wtyczki Ins).

Sojourner
źródło
1

Możesz zrobić coś takiego:

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

Teraz twój pulpit zawiera wiele plików (z różnych folderów), które możesz wkleić do swojej poczty.

Bibou
źródło
-5

Dlaczego nie po prostu przeciągnij i upuść? Czasami technicy stają się zbyt skomplikowani i zapominają o prostych rzeczach, które może zrobić Mac.

Zo219
źródło
Łał. Trzy osoby, które nie zgadzają się na przeciąganie i upuszczanie.
Zo219
3
Nie, ludzie, którzy sprzeciwiają się odpowiedzi „Dlaczego nie po prostu przeciągnij i upuść?” na pytanie, które dotyczy tego, jak coś zrobić przy pomocy AppleScript.
Duncan Babbage,