我编写了一个简单的批处理脚本(稍后将转换为 .exe 文件),用于在打开网页之前检查是否已到达服务器:
@echo off
ping -n 1 -w 1000 10.###.###.1 | find "TTL=" >nul
if errorlevel 1 (
msg "%username%" You are not connected via VPN. You have to conect to VPN first!
if %ERRORLEVEL% NEQ 0 (
echo You are not connected via VPN. You have to conect to VPN first!
)
) else (
ping -n 1 -w 1000 some.server.name | find "TTL=" >nul
if errorlevel 1 (
ping -n 1 -w 1000 192.168.###.### | find "TTL=" >nul
if errorlevel 1 (
msg "%username%" Couldn't find requested Server. Please contact the administrator!
if %ERRORLEVEL% NEQ 0 (
echo Couldn't find requested Server. Please contact the administrator!
)
) else (
msg "%username%" Connected but using NO-DNS Fallback. Please inform the administrator!
if %ERRORLEVEL% NEQ 0 (
echo Connected but using NO-DNS Fallback. Please inform the administrator!
)
cmd /c start "" "http://192.168.###.###"
)
) else (
cmd /c start "" "http://some.server.name"
)
)
它运行完美并且达到了应有的效果。
无论如何,如果出现故障并且由于某种原因无法访问服务器,仍然需要一些时间(我预计是 2 秒,但实际上最多需要 9 秒)直到用户收到反馈消息...同时他不知道代码是否正在执行某件事。
我想知道是否有可能仅使用批处理在 ping 期间显示某种“启动画面”(消息/图像)直到连接或显示错误消息,让用户知道脚本正在运行?
我说只使用批处理,因为它只是一种“智能”URL 链接,所以我不想在这方面投入太多精力,例如使用 java 或类似的东西。
答案1
我没有找到“启动画面”的解决方案,所以我仍然对此感兴趣。
但是我找到了一种目前可行的解决方法,即使用-w
ping 选项并设置 1 秒的最大超时时间。用户等待多长时间是可以的。
但如果有人有解决方案,我仍然更喜欢“启动画面”方式。