Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 是否根据ping结果更改命令提示中的颜色?_Batch File_Command Prompt_Ping - Fatal编程技术网

Batch file 是否根据ping结果更改命令提示中的颜色?

Batch file 是否根据ping结果更改命令提示中的颜色?,batch-file,command-prompt,ping,Batch File,Command Prompt,Ping,我昨天询问了根据ping结果在命令提示符中更改颜色的问题。一位用户很友好地向我提供了下面的脚本 除了一个问题,这个脚本工作得很好。当连接超时时,它什么也不做。只是有点停顿。如果报告超时,如何更新此脚本以包含变量或其他也会更改文本的内容 @setlocal enableextensions enabledelayedexpansion @echo off set /p ipaddr="Enter ip or url: eg localhost or google.co.za or 192.168.

我昨天询问了根据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
没有响应时没有“平均值”,因此变量保持不变(显示最后一个“有效”值)


只需在
:loop
for…
之间添加
set res=No_Response
,即可在ping之前预设变量。

完美!非常感谢你!我想我已经准备好了。就目前而言,这是:可能重复的