根据结果​​更改命令提示符中的颜色?

时间:2016-05-10 20:13:11

标签: command-line cmd ping

这里有一段很长的时间。

如果我想运行一个连续的ping命令,是否可以让输出以不同的颜色列出,如果我们说结果超出某一点?

示例:

Ping结果以22ms返回,白色 Ping结果返回300+,红色

那可能吗?我是否需要制作批处理文件?

下面列出的脚本非常适用。但是,我需要一些额外的动作。当IP地址超时时,此脚本不执行任何操作。它只是等待下一次ping。无论如何要加入它吗?

1 个答案:

答案 0 :(得分:1)

一个基本的解决方案就是这样的。

  @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 "
set /a res = 0 - 1 
:loop
for /f "tokens=7,9" %%a in ('ping -n 1 !ipaddr!') do (
set /a res = 0 - 1 
  if "%%a"=="Average" (
  set a=%%b
  set /a res=!a:~0,-2!
  )
)

IF %res% == -1 (
  COLOR 2
  echo %ipaddr% failed to respond in time
)
IF %res% LEQ %cutoff% (
    IF %res% NEQ -1 (
        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

将其保存为.cmd文件,然后双击它