AppleScriptを使用してファイルをクリップボードにコピーする


11

多くの場合、コマンドラインでファイルをクリップボードにコピーして、Mailで添付ファイルとして貼り付けることができます。画像ファイルがある場合image1.png、これを達成するには

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

上記のコマンドを実行し、Mailで新しいメッセージを開いてコマンドVを押すと、画像ファイルが添付ファイルとして貼り付けられます。これはファイルの内容をコピーし、コマンドVで貼り付けるとジャンクになるため、ここでpbcopyは明らかに解決策ではないことに注意してください。

私の質問は、複数のファイルで同じことをどのように行うことができますか?との両方を貼り付けたいimage1.pngとしimage2.pngます。これはFinderからは簡単です(コマンドCを両方選択してから、メールとコマンドVに切り替えます。できれば、両方のファイルが添付ファイルとして表示されます)。


1
これは、AppleScriptからのタックスの痛みです。スクリプト可能なクリップボードマネージャーのいずれかを選択するか、お気に入りのスクリプト言語でCocoa NSPasteboardを使用することをお勧めします。もう1つのオプションは、フォルダーアクションを作成し、ファイルをフォルダーにコピーしてから、Finderでフォルダー内のすべてのアイテムを選択し、クリップボードにコピーして、フォルダーを空にすることです。ファイルを添付ファイルとして電子メールで送信する場合は、リストを反復処理して、メール→新しい送信メッセージ→コンテンツ→メール添付ファイルを作成する方法があります。
アートテイラー

1
@ArtTaylor、オプションをありがとう。私はあなたが最後に言及したこと、基本的にmake new attachment with properties {file name:this_file} at after last paragraphは繰り返しループを使用してMailに通知するものを行うApplescriptに取り組んでいますargv。しかし、元の質問への答えが本当に「Applescriptでこれを行うことはできません」かどうか疑問に思っています。
JCOidl

私は本当にその気持ちを持っていますが、「できない」と言うのは嫌です。ペーストボードにはクリップボードの内容のいくつかのバージョンが含まれており、ペースト受信者が適切な表現を選択できるため、一般的なソリューションを作成するのは本当に難しいと思います。
アートテイラー

回答:


1

これはあなたが望むものには完璧ではありません。Quicksilverにはコマンドラインツールがあります。インストールすると、コマンドラインからQuicksilverアプリにファイルをパイプし、そこからメールで添付ファイルとして送信できます。

Quicksilverコマンドラインツールをインストールするには、Quicksilverをアクティブにします。次に、[Quicksilver]> [設定]に移動して、設定ウィンドウを開きます。ウィンドウの右上にある[設定]をクリックします。左側で、コマンドラインツールをクリックしてインストールします。

ターミナルでは、次のように入力できます

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

Enterキーを押すと、これらのファイルがQuicksilverの最初のペインに送信されます。Tabキーを押して操作ウィンドウに移動し、[メール/添付ファイル付きメールを新規作成]アクションを選択します。Enterキーを押すと、選択したファイルが添付された新しいメールが表示されます。

また、QuicksilverにMailおよびCommand Lineプラグインをインストールする必要があることに注意してください(Quicksilver> Preferences> Plug Ins)。


0

次のようなことができます:

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

これで、ペーストボードには、メールに貼り付けることができる(さまざまなフォルダーからの)複数のファイルが含まれます。


-4

なぜドラッグ&ドロップしないのですか?技術者が過度に複雑になり、Macでできる簡単なことを忘れることがあります。


ワオ。ドラッグアンドドロップに反対する3人。
Zo219

いいえ、「なぜドラッグアンドドロップだけではないのですか?」AppleScriptで何かする方法を尋ねる質問に。
ダンカンバベッジ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.