2016-05-12 64 views
-1

我昨天问了关于改变基于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 
+0

可能出现[在基于结果的命令提示符中更改颜色?](https://stackoverflow.com/questions/37148086/change-color-in-command-prompt-based-on-result) –

回答

0

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

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

+0

完美!非常感谢你!我觉得我全都定了。现在就是这样。 :) – nbarr7655