Paepoi » macOS Tips » macOS をクイックアクションで拡張
macOS をクイックアクションで拡張
# 最終更新日 2019.10.13
Catalina での動作確認、及び 72dpi 変換を JXA 拡張に移動。
ZIP 作成でキャンセルしても zip ファイルが作成されていたのを修正。
こちらは AppleScript, JXA だけでなくシェルスクリプトも使えます。
Automator を起動し「新規書類」ボタンを押します。
クイックアクションを選択し「選択」ボタンを押します。
「指定されたFinder項目を取得」のアクションをドラッグで配置します。
「シェルスクリプトを実行」又は「JavaScriptを実行」を配置。
「シェルスクリプトを実行」の場合は入力の引渡し方法を「引数として」にする。
後は以下のようにスクリプトを書き名前を付けて保存。

スクリプト名がそのままメニューに出ます、日本語も使えます。
Safari や TextEdit 等でも使えるようです。
保存したアクションは以下に保存されます。
シェルを利用する場合のカレントディレクトリはルート(/)です、注意。
拡張子を消したスクリプト等を一発で Atom にて開く (sh)
__MACOSX の無い ZIP 作成、アーカイブ名を指定するプロンプト付き (sh)
選択したファイルのフルパスをクリップボードにコピー (JXA)
Catalina での動作確認、及び 72dpi 変換を JXA 拡張に移動。
ZIP 作成でキャンセルしても zip ファイルが作成されていたのを修正。
概要
Finder の拡張スクリプトはクイックアクションという手段もあります。こちらは AppleScript, JXA だけでなくシェルスクリプトも使えます。
Automator を起動し「新規書類」ボタンを押します。
クイックアクションを選択し「選択」ボタンを押します。
「指定されたFinder項目を取得」のアクションをドラッグで配置します。
「シェルスクリプトを実行」又は「JavaScriptを実行」を配置。
「シェルスクリプトを実行」の場合は入力の引渡し方法を「引数として」にする。
後は以下のようにスクリプトを書き名前を付けて保存。

スクリプト名がそのままメニューに出ます、日本語も使えます。
Safari や TextEdit 等でも使えるようです。
保存したアクションは以下に保存されます。
~/Library/Services$@ や argv の引数はフルパスで渡ってきます。
シェルを利用する場合のカレントディレクトリはルート(/)です、注意。
Finder での例
実行パーミッションを GUI で切り換える (sh)for name in "$@"; do [ -x $name ] && chmod -x $name || chmod +x $name done
拡張子を消したスクリプト等を一発で Atom にて開く (sh)
open -a Atom "$@"
__MACOSX の無い ZIP 作成、アーカイブ名を指定するプロンプト付き (sh)
dpath=`dirname "$1"` cd $dpath dname=`basename $dpath` res=`osascript -e "set result to display dialog \"Archive Name ?\" default answer \"$dname\" text returned of result"` if [[ -n $res ]]; then for f in "$@"; do s=`basename $f` param+=" $s" done zip -r $res.zip $param fi
選択したファイルのフルパスをクリップボードにコピー (JXA)
ObjC.import("Cocoa"); function run(argv) { let s = argv.join('\n'); let clipboard = $.NSPasteboard.generalPasteboard; clipboard.clearContents; clipboard.setStringForType($(s), $.NSPasteboardTypeString); }
Copyright(C) sasakima-nao All rights reserved 2002 --- 2023.