我经常在学校计算机之间切换,并且优先显示隐藏文件,但不是每个人都这样做。通常我会使用
"defaults write com.apple.finder AppleShowAllFiles -bool true"
命令,如果我可以运行一些Applescript,而不是手动将文本复制到终端,然后在我完成后重做这个,这将非常方便。所以我想要完成的是接收用户输入是否要显示所有文件,然后运行该命令。对Applescript做一些初步的研究我能够弄清楚如何构建它的一些基本概念。以下代码是错误的,所以请原谅noob错误。
(choose from list {"Hide", "Show"} ¬
with prompt "Do you want to hide or show hidden files?")
if "Hide" then
do shell script "defaults write com.apple.finder AppleShowAllFiles -bool False"
else
do shell script "defaults write com.apple.finder AppleShowAllFiles -bool True"
end
我可以进入用户对话框,但是,当我尝试输入一个选项时,它会回复:“无法将”隐藏“设置为类型布尔值。”如果有人可以帮助我向我展示我需要改变的东西,那将非常感激。
谢谢,迈克尔。
答案 0 :(得分:3)
choose from list
会返回所选项目的列表。
choose from list {"Hide", "Show"} with prompt "Do you want to hide or show hidden files?"
if result is {"Show"} then
do shell script "defaults write com.apple.finder AppleShowAllFiles -bool true"
else
do shell script "defaults write com.apple.finder AppleShowAllFiles -bool false"
end if
quit application "Finder"
我使用这样的脚本切换显示隐藏文件:
do shell script "x=$(defaults read com.apple.finder AppleShowAllFiles)
[ $x = 1 ] && b=false || b=true
defaults write com.apple.finder AppleShowAllFiles -bool $b"
tell application "Finder"
quit
delay 0.1 -- without this delay Finder was not made frontmost
launch -- open Finder in the background
delay 0.1 -- without this delay there was sometimes a "connection is invalid" error
activate -- make Finder frontmost
reopen -- open a new default window
end tell
答案 1 :(得分:0)
从列表中选择返回一个列表(如果用户取消,则返回False)。这样做是为了将列表强制转换为字符串:
(choose from list {"Hide", "Show"} ¬
with prompt "Do you want to hide or show hidden files?") as string
请确保保留括号,否则as string
将强制提示您的提示字符串,您仍会收到一个列表。