2

所以我希望它不显示它正在ping,只是它是否正在运行。我的代码没有按照我的意愿做:

@echo off
:start
ping 188.138.32.53 -n 1
if %errorlevel% == 1 (
goto :fail
) else (
cls
echo The MTG SAMP Server is up and running!
pause
goto :troubleshooting
)
:fail
cls
echo The MTG SAMP Server is currently down, please be patient...
goto :start

它清除屏幕,只在运行时说,但当它不运行时,它会显示 ping 状态。为什么是这样?

4

1 回答 1

3

因为你在一个循环中。

ping 需要一些时间来检测目的地不可到达。
所以你在屏幕上看到了这个。

第一次测试后,cls执行并显示您的文本。
但是当你再次开始测试时,你也会得到 ping 输出。

只需将输出重定向到nul

ping 188.138.32.53 -n 1 > nul 2>nul
于 2013-07-18T10:28:50.380 回答