我昨天问过基于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 :(得分:0)
当没有响应时没有“平均”,所以你的变量保持不变(显示最后一个“有效”值)
只需在set res=No_Response
和:loop
之间添加for ....
即可在ping之前预设变量。