[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 【已解决】批处理命令IF多条件判断怎样获取延迟最小的IP?

本帖最后由 ads350668398 于 2014-10-28 17:53 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set d=118
  3. for /f "tokens=1,2" %%a in (ms.txt) do (
  4.       
  5. if %%b lss !d! (set d=%%b
  6. set x=%%b
  7. set ip=%%a)
  8. )
  9. ::输出
  10. echo ip=%ip% 最小延迟=%d%
  11. pause
复制代码
ms.txt是以下文件 !!上面是找到最小的延迟输出IP .可是我发现了如果在出现一个如111 50的可以变化这输出 这也是目的
可但是 就以下文本内容 160 54先出现了 175 54也出现了在这样的条件下
SET z=(MS.TXT)
执行批处理if /i “%z%”==“%ip%” echo goto 2 else goto 没有找到
的时候使用 175和160还有其他的136都.。。能通过呢?(而不只是第一个160 54)
149 61
149 61
160 54
158 58
175 59
173 58
175 55
173 57
175 54
140 59
172 55
144 57
136 54
140 54
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

一个可喜的消息 我的延迟正在负增长 哈哈

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "d=118"
  4. for /f "tokens=2" %%i in (ms.txt) do (
  5.     if %%i lss !d! (
  6.         set "d=%%i"
  7.     )
  8. )
  9. echo 最小延迟=%d%
  10. findstr "\<%d%$" ms.txt
  11. pause
复制代码
1

评分人数

TOP

怎么快 我去试试 谢谢哈哈

TOP

不对啊 输出这个了
最小延迟=54
请按任意键继续. . .
------------
我想让这样输出??怎么办到

IP;=136最小延迟=54
       160              54
       140              54
请按任意键继续. . .

TOP

回复 5# ads350668398


    第10行代码你是不是抄漏了?

TOP

findstr /i "%d%" ms.txt>>28.txt
输出结果  带有54的全部行!!

160 54
175 54
136 54
140 54
154 60
154 56
154 55
172 54
136 54

TOP

回复 7# ads350668398


    请照抄我的代码,不要自己瞎写。

TOP

不对啊 输出这个了
最小延迟=54
请按任意键继续. . .
------------
我想让这样输出??怎么办到

IP;=136最小延迟=54
       160              54
       140              54
请按任意键继续. . .

TOP

是枚举出所有最小延迟的IP !!!

TOP

回复 9# ads350668398


     第10行代码你是不是抄漏了!!!

TOP

没有啊不信你试试结果看看

TOP

回复 12# ads350668398


有啊不信你试试结果看看
C:\Test>test.bat
最小延迟=54
160 54
175 54
136 54
140 54
请按任意键继续. . .

TOP

本帖最后由 ads350668398 于 2014-10-28 17:51 编辑

@echo off
setlocal enabledelayedexpansion
set "d=118"
for /f "tokens=2" %%i in (ms.txt) do (
    if %%i lss !d! (
        set "d=%%i"
    )
)
echo 最小延迟=%d%
findstr /i "%d%" ms.txt>>28.txt
pause
以上为正确使出
160 54
175 54
136 54
140 54

TOP

回复 14# ads350668398


    然后呢?还有其它问题么?

TOP

返回列表