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