启动脚本在我的macbook中安装了一个网络驱动器:
try
tell application "Finder"
mount volume "afp://iMac-01._afpovertcp._tcp.local/Backup%20HD"
end tell
end try
这个脚本对我来说有两个问题:
如果我不在网络驱动器所在的本地网络之外,脚本需要很长时间才能尝试连接它,并使我的macbook在初始化时缓慢。那么,如何设置脚本的最长时间尝试连接网络驱动器?
如果无法连接网络驱动器,则会弹出一条警告我的消息。如何忽略此消息?即,不要出现。
我之前从未制作过苹果剧本,所以如果可能的话,请帮我修改原始剧本。
提前致谢。
答案 0 :(得分:1)
使用'with timeout'
try
with timeout of x seconds
tell application "Finder"
mount volume "afp://iMac-01._afpovertcp._tcp.local/Backup%20HD"
end tell
end timeout
end try
答案 1 :(得分:0)
回答你的问题: 1:使用超时作为mcgrailm状态;但是试着写一下
with timeout of 2 second --no plural
<your code here>
end timeout
2:弹出的对话框是一个finder弹出窗口,因此你的脚本看不到,“try on error”永远不会被调用,因为错误永远不会返回给脚本,所以如果你想自动化点击在确定然后这个代码将工作。此代码将在超时秒后单击按钮。
try
<your code here>
on error
tell application "System Events"
keystroke return
end tell
end try
我还包括了我在家中使用的相同想法的版本,此脚本检查网络,然后尝试使用shell挂载安装卷。我最初使用了一个带有超时的查找程序“mount volume”,并且代码也存在为内联注释,但我不喜欢弹出错误的对话框;即使只是一秒钟,所以我转向shell脚本。
--------------------------------------------------------------------------------------
--"Basic Drive Mounter.app"
try
set IP_address to "xxx.xxx.xxx.xxx"
set IP_Valid to true
try
do shell script ("ping -c 2 " & IP_address)
on error
set IP_Valid to false
end try
if IP_Valid then
tell application "Finder"
if disk "work" exists then
else
try
do shell script "mkdir /Volumes/work"
end try
do shell script "mount_afp afp://xxx.xxx.xxx.xxx/work /Volumes/work/"
-->>finder mount volume version
--with timeout of 2 second
-- mount volume "afp://xxx.xxx.xxx.xxx/work"
--end timeout
--<<finder mount volume version
end if
end tell
end if
on error
return 0
-->>finder mount volume version
--on error finder returns an error dialog which needs to be closed to go back and retry
--tell application "System Events"
-- keystroke return
--end tell
--<<finder mount volume version
end try
--------------------------------------------------------------------------------------