2016-05-12 87 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