更新了Applescript以隐藏桌面上的El Capitan文件夹

时间:2016-06-05 12:21:40

标签: applescript

我想隐藏桌面上的所有文件夹。我找到了以下AppleScript但不知何故它在el Capitan(我运行10.11.5版本)下无法工作:

try
set toggle to do shell script "defaults read com.apple.finder CreateDesktop"
if toggle = "true" then
do shell script "defaults write com.apple.finder CreateDesktop false"
else if toggle = "false" then
do shell script "defaults write com.apple.finder CreateDesktop true"
end if
end try
do shell script "killall Finder"
delay 0.5
activate application "Finder"

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您的发现 AppleScript存在一些问题。

CreateDesktop的值 - 就像更受欢迎的AppleShowAllFiles - 是一个布尔值。

用户默认值的布尔值在do shell script调用中为几个系统版本返回“1”或“0”(字符串)。它永远不会“真实”或“虚假”。要获得可用的结果,您需要将其强制转换为integer,然后转换为boolean

((do shell script "/usr/bin/defaults read com.apple.finder CreateDesktop") as integer) as boolean

如果密钥不存在(默认值为false)捕获抛出错误,则切换布尔状态并使用-bool属性返回write以确保不写字符串。

发送killall Finder自动重新启动后,无需在代码中执行此操作。

此脚本也可用于显示和隐藏不可见文件的AppleShowAllFiles键。

try
    set state to ((do shell script "/usr/bin/defaults read com.apple.finder CreateDesktop") as integer) as boolean
on error
    set state to false
end try
do shell script "/usr/bin/defaults write com.apple.finder CreateDesktop -bool " & ((not state) as text) & "; killall Finder"