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



我想隐藏桌面上的所有文件夹。我找到了以下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"

提前感谢您的帮助

发现的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 属性重新写入,以确保不写入字符串。

发送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"

最新更新