Apple脚本如果发布
嘿家伙我的Applescript没有做我期望的。 我的错误在哪里?Apple脚本如果发布
try
set NAS to do shell script "ping -c 1 192.168.222.5"
if NAS contains "100.0% packet loss" then repeat until NAS contains "0% packet loss"
do shell script "python /Users/Selim/Desktop/wol2.0.sh"
set NAS to do shell script "ping -c 1 192.168.222.5"
end repeat
delay 20
tell application "Terminal" to activate
end try
我想ping到我的NAS,当我没有得到响应我想唤醒他,但我的脚本停止发送ping后没有响应。 任何想法我做错了什么? 我想发送数据包直到NAS唤醒。
我已经改变了代码
try
do shell script "ping -c 1 192.168.222.5"
on error
set NAS to "100% packet loss"
repeat while NAS contains "100% packet loss"
do shell script "python /Users/Selim/Desktop/wol2.0.sh"
set NAS to do shell script "ping -c 1 192.168.222.5"
if NAS contains "0% packet loss" then exit repeat
end repeat
say "Server startet, 20 sek"
delay 20
end try
tell application "Terminal" to activate
现在我不知道我是怎么循环的错误命令至极与工作,我从平
即使你已经找到了获得自己解决这里没有答案,所以我试着在这里完成它。当我们将两个字符串放在eachother之上时,我们将看到“100. 0%数据包丢失”。正如您在查看“0%数据包丢失”时所看到的,当您仅发送1个数据包时,它总是会返回true。为了安全起见,不要抱歉,最好匹配整个行“传输1个数据包,接收1个数据包,丢失0.0%”。你的第一个解决方案将通过改变比赛来解决(你也可以当if语句,如果ping成功的第一次重复将无法运行,一旦摆脱):
set NAS to do shell script "ping -c 1 192.168.222.5 || true"
repeat until NAS contains "1 packets transmitted, 1 packets received, 0.0% packet loss"
do shell script "python /Users/Selim/Desktop/wol2.0.sh"
set NAS to do shell script "ping -c 1 192.168.222.5 || true"
end repeat
delay 20
tell application "Terminal" to activate
更新:一个更好的版本谁不匹配来自ping的打印字符串,但匹配返回的数字并将其强制为布尔值。
repeat until ping("192.168.222.5")
do shell script "python /Users/Selim/Desktop/wol2.0.sh"
end repeat
delay 20
tell application "Terminal" to activate
on ping(IPNumber)
return (do shell script "ping -t 1 -c 1 " & IPNumber & " >/dev/null && echo yes || echo no") as boolean
end ping
谢谢你的回答。但是当你发现一个错误时,整个程序就会停止。如果没有尝试,我不会得到它的工作。 – 2015-04-06 08:04:57
更新后,如果ping不返回0,命令现在将运行“true”。 – 2015-04-06 12:10:00
感谢您的努力,我现在学到了更多。 – 2015-04-06 16:19:42
工作现在脚本:
try
do shell script "ping -c 1 192.168.222.5"
on error
set NAS to "q"
repeat until NAS contains "1 packets transmitted, 1 packets received, 0.0% packet loss"
do shell script "python /Users/Selim/Documents/scripte/wol2.0.sh"
delay 0.1
try
set NAS to do shell script "ping -c 1 192.168.222.5"
end try
end repeat
delay 5
end try
tell application "Kodi" to activate
请把你的工作的代码作为一个答案,并将其标志“正确的”。 – 2015-04-04 13:40:32