上下文菜单项可更快地在 Finder 中锁定/解锁文件

上下文菜单项可更快地在 Finder 中锁定/解锁文件

我可以在文件的上下文菜单中更改文件锁定(“只读”)状态:

在此处输入图片描述

菜单上没有此项。

我如何创建 Finder(上下文)菜单项来更快地设置、删除或切换此标志?

答案1

您可以通过创建一个新的菜单项来执行此操作服务接收文件和文件夹作为输入任何应用程序在 Automator 中。

您有两种实施选项。选择以下两种 Automator 操作之一来构建服务工作流程:

  • 运行 Shell 脚本
  • 运行 AppleScript

下面的代码实现了切换命令,因为它是最复杂的。

运行 Shell 脚本

此变体用于stat读取为文件设置的标志。这些值与运行 时通常显示的值相同ls -lO,但是stat一种更简洁的读取值的解决方案。锁定标志或 的uchg值为0x2,因此这就是我们要检查的内容。

chflags用于改变值,并且是growlnotify可选部分咆哮,用于显示成功或错误消息。

在此处输入图片描述

使用以下 bash 脚本代码片段作为运行 Shell 脚本操作的一部分:

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

如果操作失败(例如由于缺少权限),则每个未能更改的文件都会显示一个对话框。

在此处输入图片描述

相关内容