Finder でファイルをより素早くロック/ロック解除するためのコンテキスト メニュー項目

Finder でファイルをより素早くロック/ロック解除するためのコンテキスト メニュー項目

ファイルのコンテキスト メニューでファイルのロック (「読み取り専用」) ステータスを変更できます。

ここに画像の説明を入力してください

これにはメニュー項目がありません。

このフラグをより迅速に設定、削除、または切り替えるための Finder (コンテキスト) メニュー項目を作成するにはどうすればよいでしょうか?

答え1

それを実現する新しいメニュー項目を作成するには、サービス受け取るファイルとフォルダ入力としてあらゆるアプリケーションAutomator で。

実装オプションは 2 つあります。サービス ワークフローを構築するには、次の 2 つの Automator アクションのいずれかを選択します。

  • シェルスクリプトを実行する
  • AppleScriptを実行する

以下のコードは、トグル最も複雑なコマンドです。

シェルスクリプトを実行する

このバリアントは、statファイルに設定されているフラグを読み取るために使用します。これらは、 を実行して通常表示される値と同じですls -lOが、stat値を読み取るためのより明確なソリューションです。ロックされたフラグ、または にはuchg値 がある0x2ため、これがチェック対象です。

chflagsは値を変更するために使用されgrowlnotify、のオプション部分はうなり声成功またはエラーのメッセージを表示するために使用されます。

ここに画像の説明を入力してください

シェル スクリプトの実行アクションの一部として、次の bash スクリプト コード スニペットを使用します。

for f in "$@"
do
    let "$( stat -f "%f" "$f" ) & 0x2"
    if [ $? -ne 0 ] ; then
        chflags uchg "$f" || /usr/local/bin/growlnotify "Error" -m "Failed to lock $f!"
        /usr/local/bin/growlnotify "Locked File" -m "$f was locked!"
    else
        chflags nouchg "$f" || /usr/local/bin/growlnotify "Error" -m "Failed to unlock $f!"
        /usr/local/bin/growlnotify "Unlocked File" -m "$f was unlocked!"
    fi
done

入力を受け取るアクションを設定する引数として

 AppleScriptを実行する

「AppleScript を実行」アクションの一部として、次の AppleScript コード スニペットを使用します。

on run {input, parameters}
repeat with f in input
        try
            tell application "Finder" to set locked of f to (not locked of f)
        on error errmsg
            tell application "Finder" to display alert errmsg
        end try
    end repeat
end run

権限がないなどの理由でアクションが失敗した場合は、変更に失敗したファイルごとに 1 つのダイアログが表示されます。

ここに画像の説明を入力してください

関連情報