Mac
 Computer >> コンピューター >  >> システム >> Mac

生産性アップに役立つ!MacのAppleScript自動化テクニック5選

生産性アップに役立つ!MacのAppleScript自動化テクニック5選

AppleScriptは、Appleが提供するやや地味な存在のスクリプト言語ですが、プログラミング初心者でも十分に活用できる強力なツールです。面倒な定型作業を処理してくれる賢いスクリプトをいくつか用意しておけば、日々の生産性を高め、単調な作業から解放されます。

AppleScriptとは?

生産性アップに役立つ!MacのAppleScript自動化テクニック5選

AppleScriptは、Finder、iTunes(Music)、QuickTime、Mailなど、Macの多くの標準アプリケーションと連携できるのが特徴です。Automatorを使ったことがある方なら、「パワーユーザー向けのAutomator」とイメージすると分かりやすいでしょう。

1. 隠しファイルの表示を切り替える

以下のスクリプトをアプリケーション形式で保存すれば、ダブルクリックするだけでFinderの隠しファイル表示をオン/オフできる便利な切り替えツールになります。

set newHiddenState to "YES"
try
    set oldHiddenState to do shell script "defaults read com.apple.finder AppleShowAllFiles"
    if oldHiddenState is in {"1", "YES"} then
        set newHiddenState to "NO"
    end if
end try
do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenState
do shell script "killAll Finder"

2. ファイルを一括リネームする

このスクリプトは、新しいファイル名の入力を求めた後、選択したすべてのファイルを「入力した名前+連番」で自動的にリネームします。さらに、10番目までのファイルには先頭に「0」を付けてくれる親切設計で、後からファイルをソートしても綺麗に並びます。

-- コード出典: https://gist.github.com/oliveratgithub/
-- AppleScriptエディタで開き、アプリケーションとして保存してください
-- ------------------------------------------------------------
-- ファイル名を名前と拡張子に分割するために必要な設定
set text item delimiters to "."
tell application "Finder"
    set all_files to every item of (choose file with prompt "Choose the Files you'd like to rename:" with multiple selections allowed) as list
    display dialog "New file name:" default answer ""
    set new_name to text returned of result
    -- ここから選択された全ファイルを順番に処理します。
    -- 「index」は初期値1のカウンターで、ファイルごとに増加していきます。
    -- 連番リネームにはこの番号が不可欠です。
    repeat with index from 1 to the count of all_files
        -- indexを使って、リストから対象ファイルを選択
        set this_file to item index of all_files
        set file_name_count to text items of (get name of this_file)
        -- 連番が10未満の場合、ソート時に正しく並ぶよう先頭に「0」を付ける
        if index is less than 10 then
            set index_prefix to "0"
        else
            set index_prefix to ""
        end if
        --
        -- 現在のファイルに拡張子が存在するかどうかを確認
        if number of file_name_count is 1 then
            -- 抽出できた文字列が1つだけ=拡張子なし
            set file_extension to ""
        else
            -- 拡張子あり。名前変更後に元の拡張子を再び付ける必要があります
            set file_extension to "." & item -1 of file_name_count
        end if
        -- 新しい名前に連番と拡張子を組み合わせてリネーム
        set the name of this_file to new_name & index_prefix & index & file_extension as string
    end repeat
    -- 一括リネーム完了!
    display alert "All done! Renamed " & index & " files with '" & new_name & "' for you. Have a great day! :)"
end tell

3. 画像をパーセンテージで縮小する

このスクリプトは、指定した画像を元のサイズの50%に縮小し、デスクトップに別名で保存します。

-- 画像を選択させる
set theImageFile to choose file of type "public.image" with prompt "Please select an image:"
 
-- 出力フォルダを指定(デスクトップ)
set theOutputFolder to (path to desktop folder as string)
 
-- Image Eventsを起動
tell application "Image Events"
    launch
 
    -- 画像を開く
    set theImage to open theImageFile
    tell theImage
 
        -- 保存用のファイル名を決定
        set theName to name
        set theSaveName to "smlr-" & theName
 
        -- 画像を50%に縮小
        scale by factor 0.5
 
        -- 決定した保存名で出力フォルダに保存
        save as file type in (theOutputFolder & theSaveName)
 
        -- 画像を閉じる
        close
    end tell
end tell

4. 画像を指定ピクセル幅にリサイズする

前項のスクリプトと基本構造は同じですが、こちらは比率ではなく「ピクセル幅」を指定してリサイズします。希望の幅を数値で入力すると、新しいファイル名の先頭にその幅が付加されて保存されるので、管理もしやすくなっています。

-- 画像を選択させる
set theImageFile to choose file of type "public.image" with prompt "Please select an image:"
 
set dialogResult to (display dialog "Enter desired pixel width:" default answer "")
try
    set pixelWidth to (text returned of dialogResult) as integer
end try
 
-- 出力フォルダを指定(デスクトップ)
set theOutputFolder to (path to desktop folder as string)
 
-- Image Eventsを起動
tell application "Image Events"
    launch
 
    -- 画像を開く
    set theImage to open theImageFile
    tell theImage
 
        -- 保存用のファイル名を決定(先頭にピクセル幅を付ける)
        set theName to name
        set theSaveName to (pixelWidth as text) & "-px-" & theName
 
        -- 指定したピクセル幅にリサイズ
        scale to size pixelWidth
 
        -- 出力フォルダに保存
        save as file type in (theOutputFolder & theSaveName)
 
        -- 画像を閉じる
        close
    end tell
end tell

5. 選択したフォルダを任意の場所へバックアップする

このシンプルなスクリプトは、選択したフォルダを指定したコピー先へ丸ごと複製します。毎回のドラッグ&ドロップによるコピーや、階層の深いフォルダ移動の手間をぐっと減らしてくれます。

set backupTarget to (choose folder with prompt "Select a Backup Target")
set backupDestination to (choose folder with prompt "Select a Backup Destination")
tell application "Finder"
    duplicate folder backupTarget to folder backupDestination
end tell

まとめ

AppleScriptについてさらに深く学びたい方は、まずApple公式のドキュメントをチェックしてみてください。より初心者向けに噛み砕いた解説を読みたい場合は、MacOSXAutomation.comがおすすめです。今回紹介した5つのスクリプトをベースに、自分のワークフローに合わせて少しずつカスタマイズしてみると、Mac作業の効率が格段に向上するはずです。


  1. Windows・Mac対応のDJソフトウェアおすすめ3選【プロ仕様から無料まで】

    パーティーが最高潮に達する瞬間、そこにはDJの全力のパフォーマンスがあります。しかし、本格的なDJセットアップは高価であり、扱いこなすには長時間のトレーニングと専門知識が必要です。取扱説明書を一読しただけでは、複雑なDJデッキを操ることは難しいでしょう。数々の機材やミキサーを駆使するDJingは、決して簡単な仕事ではありません。現在、最も効率的なDJスタイルとして注目されているのが、コンピューターを活用した方法です。Windows PCでもMacでも、必要なツールとソフトウェアがすべて揃っています。ステージに立つ前に、最適なDJソフトウェアをインストールしておくことが成功への鍵となります。幸い

  2. Macのおすすめバックアップソフト9選|無料で使える定番ツールを徹底比較

    Macのデータを守るためにバックアップが必要な理由 何ものも永遠には続きません。それは高性能なMacであっても例外ではありません。macOSには高度なセキュリティ機能が備わっていますが、サイバー攻撃やデータ漏洩の脅威から完全に守られているわけではありません。 さらに、突然の停電による電源障害でシステムが起動しなくなるリスクにも対処できません。だからこそ、日頃からデータのバックアップを取っておくことが重要です。その作業を自動化・効率化してくれるのがMac用バックアップソフトです。 本記事では、個人用・ビジネス用のファイルを安全に保管できる、信頼性の高いMac向けバックアップソフトを厳選してご紹介