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


3

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

enter image description here

这没有菜单项。

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

Answers:


4

您可以通过创建一个新的菜单项来创建它 服务 接收 文件和文件夹 作为输入 任何申请 在Automator中。

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

  • 运行Shell脚本
  • 运行AppleScript

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

运行Shell脚本

此变体使用 stat 读取为文件设置的标志。这些值与通常运行时显示的值相同 ls -lO但是 stat 是一个更清晰的解决方案来读取值。锁定的旗帜,或 uchg,有价值 0x2,这就是我们正在检查的内容。

chflags 用于更改值,和 growlnotify,可选部分 吠声 ,用于显示成功或错误消息。

enter image description here

使用以下bash脚本代码段作为Run Shell Script操作的一部分:

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代码段作为Run 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

如果操作失败,例如因为缺少权限,每个文件都会显示一个无法更改的对话框。

enter image description here

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.