标题: [文件操作] 批处理如何ping指定IP延迟小于500ms 10次后启动指定程序? [打印本页]
作者: 差点就很帅 时间: 2024-10-17 10:09 标题: 批处理如何ping指定IP延迟小于500ms 10次后启动指定程序?
ping 192.168.1.1
返回ping的延迟时间,如果小于500ms 10次则启动 D:\1.exe
如果超时或者其他异常也要返回具体内容。
如果是ping通的情况下显示为:
连接服务器测试 <1ms 第1次
连接服务器测试 <=1ms 第2次
依次类推
如果小于500ms 10次则启动D:\1.exe
如果是ping不通的情况下显示为:
连接服务器测试 超时 第1次
连接服务器测试 超时 第2次
如果是不通转为通了,要重新计数而且还要计算小于500ms 10次则启动 D:\1.exe
例如
连接服务器测试 超时 第1次
连接服务器测试 超时 第2次
连接服务器测试 >600ms 第1次
连接服务器测试 <700ms 第2次
连接服务器测试 <1ms 第1次
连接服务器测试 <=1ms 第2次
求大佬帮忙。
作者: 77七 时间: 2024-10-17 12:17
- @echo off
- rem 保存为ansi编码
- setlocal enabledelayedexpansion
- for /l %%l in () do (
- set k=
- for /f "delims==" %%a in ('2^>nul set _') do (
- set %%a=
- )
- for /f "delims=" %%a in ('ping -n 1 192.168.1.1 2^>^&1 ^| findstr /rv "正在 统计信息"') do (
- set /a k+=101
- set _!k:~-2!=%%a
- )
- (for /f "delims=" %%b in ('set _ ^| find /i "ttl="') do (
- set str=%%b
- for /f "delims=m=" %%c in ("!str:*时间=!") do (
- if %%c lss 500 (
- set /a n+=1,m=l=0
- echo 连接服务器测试 %%c ms (^< 500ms) 第!n!次
- if !n! equ 10 (
- start "" "d:\1.exe"
- pause
- exit
- )
- ) else (
- set /a m+=1,n=l=0
- echo 连接服务器测试 %%b ms (^> 500ms) 第!m!次
- )
- )
- )) || (
- set /a l+=1,m=n=0
- echo 连接服务器测试 超时 第!l!次
- for /f "tokens=1* delims==" %%a in ('set _') do (
- echo errorinfo : [%%b]
- )
- )
- timeout 1 >nul
- echo=
- )
复制代码
作者: 差点就很帅 时间: 2024-10-17 19:22
回复 2# 77七
感谢大佬的热心帮助!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |