根据 ping 结果更改命令提示符中的颜色?

Change color in command prompt based on ping result?

我昨天询问了有关根据 ping 结果更改命令提示符中的颜色的问题。一位用户好心为我提供了以下脚本。

除一个问题外,该脚本运行良好。当连接超时时,它什么都不做。它只是有点停顿。如果报告超时,我将如何更新此脚本以包含变量或也会更改文本的内容?

@setlocal enableextensions enabledelayedexpansion
@echo off
set /p ipaddr="Enter ip or url: eg localhost or google.co.za or 192.168.0.1"
set /p cutoff="enter minimum good reply ms: eg 300 "
:loop
for /f "tokens=7,9" %%a in ('ping -n 1 !ipaddr!') do (
  if "%%a"=="Average" (
  set a=%%b
  set /a res=!a:~0,-2!
  )
)

if %res% LEQ %cutoff% (
    COLOR 2
    echo %ipaddr% responded in %res%ms
)else (
    COLOR 4
    echo %ipaddr% responded in %res%ms
)
ping -n 3 127.0.0.1 >nul: 2>nul:
goto :loop

endlocal

没有"Average",当没有反应,所以你的变量保持不变(显示最后的"valid"值)

只需在:loopfor ....之间添加set res=No_Response即可在ping前预设变量。