根据ping结果在命令提示符下更改颜色?

时间:2016-05-12 19:03:47

标签: batch-file command-prompt ping

我昨天问过基于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

1 个答案:

答案 0 :(得分:0)

当没有响应时没有“平均”,所以你的变量保持不变(显示最后一个“有效”值)

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