私はAppleScriptにとても慣れていません。ローカルコンピューターからDropboxフォルダーにファイルを頻繁に共有しています。
例えば:
From: ~/Work/hello.txt
To: ~/Dropbox/zzz_ShareMe/hello.txt
cp ~/Work/hello.txt ~/Dropbox/zzz_ShareMe/ # or, just copy files from Finder
私はAppleScriptについてグーグルで検索し、1つのアイテムのみをコピーするワークフローを思いつきましたが、複数のファイルを選択して、割り当てられたホットキー(ctrl-alt-d)を使用してDropboxにコピーするにはどうすればよいですか?
Run NSAppleScriptの内容を以下に示します。
# Note: we should have ~/Dropbox/zzz_ShareMe folder
#
on alfred_script(q)
tell application "Finder"
set source to (POSIX path of (the selection as alias))
do Shell script "cp -r" & space & quoted form of POSIX path of source & space & "~/Dropbox/zzz_ShareMe"
end tell
end alfred_script
私は予備を共有しました ワークフローはこちら 。
このワークフローは、単一のファイルに対して機能します。 Finderでファイルを選択すると、ctrl-alt-dはファイルを~/Dropbox/zzz_ShareMe/
にコピーしますが、複数のファイルを選択してそのホットキーを使用すると、何もコピーされません。
どうすればその問題を解決できますか。
助けていただければ幸いです。
関連リンク:
http://www.packal.org/workflow/move
http://www.packal.org/workflow/copymove
https://www.alfredforum.com/topic/4195-move-selected-Finder-item/
Update別のスクリプトを試しましたが、それでも失敗します。
必要なタスク:
~/Dropbox/zzz_ShareMe/
にコピーする必要があります。新しいスクリプトを以下に示します。
on alfred_script(q)
tell application "Finder"
set source to selection
end tell
if (count of source) is greater than 1 then
set fileList to every item of source
repeat with source in fileList
doMove(source, q)
end repeat
else
doMove(source, q)
end if
end alfred_script
on doMove(source, destination)
set source to (POSIX path of (the source as alias))
set destination to "~/Dropbox/zzz_ShareMe"
do Shell script "cp -r" & space & quoted form of POSIX path of source & space & POSIX path of destination
end doMove
理想的には、この質問を Alfred Forum に投稿する必要があります。しかし、あなたの問題は非常に単純なものなので、ここで手を貸していただければ幸いです。
基本的に、単一ファイルワークフロー用のAppleScriptは、変数source
が単項データ型(単一値)であるalias
に強制変換されるため、本質的に単一ファイルの処理に自己制限します。 。 _alias list
_というクラスがあり、その名前が示すように、エイリアスのリストに適しています。
また、AppleScriptとBashスクリプトを混在させました。これは、他の状況で非常に役立つ可能性がありますが、そうする理由がないため、ここでは少し奇妙です。そこで、AppleScriptとBashの別々のソリューションを紹介します。
次のホットキートリガーに接続されたスクリプトの実行( not 実行NSAppleScript)アクション(これら2つのアクションの詳細については、 Alfredヘルプページ を参照してください。ただし、一般的には、Run NSAppleScriptアクションを使用する必要はありません) :
ホットキートリガーをダブルクリックして設定します。最初のタブ(ホットキー設定)では、目的のホットキーを設定する方法を知っていると思います。ただし、引数フィールドを macOS での選択にも設定します。
2番目のタブ(関連アプリ)では、 Finder にフォーカスがある場合にのみ動作するように、ホットキーのアクションを制限できます。これを行うには、 Finder のアプリアイコンをリストボックスにドラッグします(最も簡単な方法は、 Alfred の検索フィールドをトリガーして入力することです "Finder" 、アイコンをここからそこにドラッグします)。
設定を保存します。
スクリプトの実行アクションをダブルクリックして、エディターペインを表示します。最初のドロップダウンリストで目的の言語を選択できます。この質問の目的で関心のある2つは _/bin/bash
_ =(または同等のリストエントリ)および/usr/bin/osascript (AS)
(または同等)。
osascript
は、AppleScriptをコンパイルして実行するエンジンです。
AS
はAppleScriptを指します。 JS
はJavaScriptを指します。
Bashを使用することを選択した場合は、入力をargvとしてを選択します。編集フィールドに表示されるサンプルコードをすべて削除し、次のコードを入力します。
_cp "$@" ~/Dropbox/zzz_ShareMe
_
AppleScriptを選択した場合、ここでは入力タイプは重要ではありません。編集フィールドに表示されるサンプルコードをすべて削除し、次のコードを入力します。
_tell application "Finder" to reveal ¬
(duplicate (selection as alias list) ¬
to folder "zzz_ShareMe" ¬
of folder "Dropbox" ¬
of home)
_