gpt4 book ai didi

batch-file - 创建一个不断 ping google 并测试响应时间的批处理文件

转载 作者:行者123 更新时间:2023-11-28 20:11:22 25 4
gpt4 key购买 nike

我正在尝试创建一个批处理文件,它将不断 ping google.com 并检查响应时间 - “time=Xms”。

  • 如果时间 <= 39ms,则该 ping 的文本(或背景)应该保持绿色。
  • 如果时间 > 40 毫秒且 < 80 毫秒,则该 ping 的文本(或背景)应该变成橙色。
  • 如果时间 >= 80ms,则该 ping 的文本(或背景)应该变红。

我现在有这一批,如果响应失败,每 3 秒 ping google 一次,背景从绿色变为红色:

    @echo off
:color 97

:start
PING -n 1 www.google.com
call :color
goto :start

:color
IF %ERRORLEVEL% EQU 0 (
COLOR 27
) else (
COLOR 47
ping -n 1 127.0.0.1 >nul
COLOR 74
ping -n 1 127.0.0.1 >nul
COLOR 47
)
ping -n 3 127.0.0.1 >nul
GOTO:EOF

这工作正常,但我不知道如何测试响应时间。

最佳答案

有一些怪癖。

a) 您必须将所需的 ping 值获取到一个变量。使用 for 获取它。

b) 你不能直接比较它,因为 if 比较的是字符串,而不是数字(2 大于 10)。在字符串中添加前导零(然后将其剪切为固定长度)

c) cmd 没有为单行(或字符)着色的原生方式。可以使用纯 cmd 来完成,但我认为 powershell 是更好的方法。

@echo off
:loop
set "tim=unreachable"
for /f "tokens=7 delims== " %%i in ('PING -n 1 www.google.com ^|find "TTL"') do set "tim=%%i"
set "ti=0000%tim%"
set "ti=%ti:~-6,-2%"
if %ti% leq 0040 powershell write-host -foreground green %tim% & goto :loop
if %ti% leq 0080 powershell write-host -foreground yellow %tim% & goto :loop
powershell write-host -foreground red %tim% & goto :loop

关于batch-file - 创建一个不断 ping google 并测试响应时间的批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35654701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com