我想隐藏桌面上的所有文件夹。我找到了以下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"
提前感谢您的帮助
答案 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"