根据 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"值)
只需在:loop
和for ....
之间添加set res=No_Response
即可在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
没有"Average",当没有反应,所以你的变量保持不变(显示最后的"valid"值)
只需在:loop
和for ....
之间添加set res=No_Response
即可在ping前预设变量。