【AppleScript】【Mac】フォルダへのファイル追加時にスクリプトを自動実行させる

AppleScript

今回はMacのフォルダアクション機能を使って、指定したフォルダにファイルが追加された時にスクリプトを実行させる方法について紹介します!

フォルダアクションを利用すると、
コマンドを利用したファイル移動だったり、スクリプトの実行などが自動化でき、日頃のルーティン作業が楽になるので、是非この機会にフォルダアクションを試してみてください

ちなみに僕は、ブログ記事を保存しているフォルダにフォルダアクションを紐づけていて、記事が作成されると自動的にGitHubEvernoteにバックアップを取れるようにしてたりします。かなり便利です😎


手順

AppleScriptを作成する

まずはSpotlight検索からスクリプトエディタを開きましょう。

※Spotlight検索は Command + Space で起動できます

ファイルを開く画面に行くので

Macintosh HD -> ライブラリ -> Scripts -> Forder Action Scripts

を選択し「新規書類」をクリックしてください

まずは手慣らしにMacのデスクトップのダイアログにhello worldと表示させてみましょう

エディタに

display dialog "hello world"

と記載し、▶︎を押してみてください。

画面にこのようなダイアログが出てきたら成功です。


さて、今回行いたいのは特定のPythonスクリプトを実行したい。ということなので、

iTermを開き、test.pyファイルを実行する

というスクリプトを作ってみたいと思います。

tell application "iTerm"
	activate
	set my_session to current session of current tab of current window
	tell my_session
		-- ここにターミナルコマンドを入力
		write text "cd ~/Sources/my_apps/python_apps && python test.py"
	end tell
end tell

iTermの現在のウィンドウを呼び出し、cd スクリプトのあるディレクトリのパス && python ファイル名.pyを叩きます。

※ディレクトリのパスや実行するスクリプトはそれぞれ調整してください

▶︎を押してみましょう。

iTermが開かれ、指定したスクリプトが動いてくれました。

※test.pyはただHello World!と叫ぶだけのスクリプトです。

# test.py
print("Hello World!")

仕上げに、先ほどのスクリプトに”フォルダにアイテムが追加された時に動く”というトリガーを設定します

on adding folder items to this_folder after receiving added_items
	tell application "iTerm"
		activate
		delay 5
		set my_session to current session of current tab of current window
		tell my_session
			-- ここにターミナルコマンドを入力
			write text "cd ~/Sources/my_apps/python_apps && python test.py"
		end tell
	end tell
end adding folder items to
on adding folder items to this_folder after receiving added_items
end adding folder items to

がトリガーの部分ですね

※iTermの準備が整う前にコマンドを実行しようとしてうまくいかないことがあったのでファイルが追加されてから5秒後(delay 5)にコマンドが叩かれるようにしてます。

作成したスクリプトは適当な名前を付けて保存しましょう。

※保存時に書類“〜”を保存できませんでした。などのエラーが出る場合は、Folder Action Scriptsフォルダへの書き込み権限がないかもしれません。その場合は、Folder Action Scriptsフォルダを右クリック -> 情報を見る -> 共有とアクセス権から書き込み権限を付与してください

ここまででほぼ準備は完了です。

作成したAppleScriptをフォルダに紐づける

最後に、作成したAppleScriptとフォルダを紐づけましょう。


適当なフォルダを作成。


作成したフォルダを右クリック(タッチパッドを2本指クリック)し、

サービス -> フォルダアクション設定

をクリック

フォルダアクション設定画面が出るので、フォルダアクションを適用したいフォルダを選択

紐づけるアクションを選択するには「+」ボタンをクリックします

様々なスクリプトが表示されますがここで先ほど作成したスクリプトを選択し、関連付けるをクリックしてください。

この画面になったら設定完了です。
実際にこのフォルダに適当なファイルを配置してみましょう。

ファイルを配置するとiTermが起動し、5秒後にPythonスクリプトが実行されました。
成功!!


あとがき

AppleScriptには触れたばかりですが、アプリケーションを操作することも可能なようで色々とできることが増えて楽しいですね。

今回は以上となります。


参考文献

コメント

タイトルとURLをコピーしました