Batch file Ping批处理文件颜色错误级别

Batch file Ping批处理文件颜色错误级别,batch-file,ping,errorlevel,request-timed-out,Batch File,Ping,Errorlevel,Request Timed Out,下面是我目前正在使用的批处理文件,但我想对其进行更改,使其不仅在链接良好时为绿色,在链接超时时为红色。如果响应不在特定范围内,我希望它变为黄色。因此,如果我的RTT范围不在130-190毫秒之内,它将变为黄色。提前谢谢 我希望屏幕是绿色的,如果它落在一个范围内,黄色的,如果它落在范围外,红色的,它的请求超时。 编辑以适应评论 @echo关闭 setlocal enableextensions enabledelayedexpansion rem从命令行获取地址 设置“地址=%~1” 如果未定义地

下面是我目前正在使用的批处理文件,但我想对其进行更改,使其不仅在链接良好时为绿色,在链接超时时为红色。如果响应不在特定范围内,我希望它变为黄色。因此,如果我的RTT范围不在130-190毫秒之内,它将变为黄色。提前谢谢


我希望屏幕是绿色的,如果它落在一个范围内,黄色的,如果它落在范围外,红色的,它的请求超时。
编辑以适应评论

@echo关闭
setlocal enableextensions enabledelayedexpansion
rem从命令行获取地址
设置“地址=%~1”
如果未定义地址集“地址=127.0.0.1”
rem配置级别和颜色
rem格式为initialValue:值递减格式的颜色
设置“级别=9000:4F500:5F130:E00:a0”
rem无限循环
对于/l%%i in()do(
rem从ping命令检索信息
设置“rtt=9999”
设置“ttl=?”

对于/f“tokens=3,4 delims==^我相信这与, 因此,我将从那里转发答案

乔恩的回答值得称赞~

@echo off
for /f %%i in ('ping racer ^| find /c "(0%% loss)"') do SET MATCHES=%%i
echo %MATCHES%
如果ping失败,则打印
0
,如果成功,则打印
1
。我让它只查找“0%损失”(不特别是4次ping),以便可以自定义ping的数量

百分号已经加倍,这样就不会误认为是应该被替换的变量

FOR
技巧只用于将命令的输出设置为环境变量的值


您需要将“racer”编辑到ip。您还可以更改“Matches”"如果你想要一个不同的变量。

什么代表“RTT范围”?这是往返时间它有3个数字-最小值、最大值和平均值。你想要哪一个?因为他只运行了一次并提取了包含TTL的行,我假设他想要基于
时间的颜色。
值。我希望屏幕是绿色的如果它落在某个范围内,则为黄色,如果它落在该范围外,则为红色,请求超时。我没有做太多工作,但我正在从中读取(地址=%~1)应读地址=8.8.8。8@phifer,只是编码为可重用,将地址作为批处理文件的参数。它应该被称为类似于
rttMonitor.cmd 8.8.8.8
,或者,当然,文件中的行可以更改为
set“address=8.8.8.8”
好的,现在我正在运行它,但是TTL当前是251,所以它应该是黄色的,但我显示为绿色。还有一种方法可以使响应显示当前的响应时间。@phifer,TTL不是RTT。使用的值是TTL信息之前的
时间=…ms
。我明白了。我的响应时间从9999到9999交替在308左右有一个更正确的数字。它是红色的,但应该是绿色的。也谢谢你的帮助!
@echo off
for /f %%i in ('ping racer ^| find /c "(0%% loss)"') do SET MATCHES=%%i
echo %MATCHES%