当我告诉cls时,为什么这条线在CMD中打印?

时间:2013-07-18 10:23:03

标签: batch-file command-prompt ping

所以我希望它不会显示它正在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状态。这是为什么?

1 个答案:

答案 0 :(得分:3)

当你在循环中。

ping需要一些时间来检测目标无法访问 所以你在屏幕上看到了这一点。

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

只需将输出重定向到nul

即可
ping 188.138.32.53 -n 1 > nul 2>nul