Board logo

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

作者: ads350668398    时间: 2014-10-28 09:36     标题: 【已解决】批处理命令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
作者: ads350668398    时间: 2014-10-28 09:41

一个可喜的消息 我的延迟正在负增长 哈哈
作者: DAIC    时间: 2014-10-28 10:06

  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
复制代码

作者: ads350668398    时间: 2014-10-28 10:14

怎么快 我去试试 谢谢哈哈
作者: ads350668398    时间: 2014-10-28 10:21

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

IP;=136最小延迟=54
       160              54
       140              54
请按任意键继续. . .
作者: DAIC    时间: 2014-10-28 10:29

回复 5# ads350668398


    第10行代码你是不是抄漏了?
作者: ads350668398    时间: 2014-10-28 10:34

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
作者: DAIC    时间: 2014-10-28 10:40

回复 7# ads350668398


    请照抄我的代码,不要自己瞎写。
作者: ads350668398    时间: 2014-10-28 10:57

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

IP;=136最小延迟=54
       160              54
       140              54
请按任意键继续. . .
作者: ads350668398    时间: 2014-10-28 11:00

是枚举出所有最小延迟的IP !!!
作者: DAIC    时间: 2014-10-28 12:50

回复 9# ads350668398


     第10行代码你是不是抄漏了!!!
作者: ads350668398    时间: 2014-10-28 13:01

没有啊不信你试试结果看看
作者: DAIC    时间: 2014-10-28 13:24

回复 12# ads350668398


有啊不信你试试结果看看
C:\Test>test.bat
最小延迟=54
160 54
175 54
136 54
140 54
请按任意键继续. . .
作者: ads350668398    时间: 2014-10-28 17:32

本帖最后由 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
作者: DAIC    时间: 2014-10-28 17:34

回复 14# ads350668398


    然后呢?还有其它问题么?
作者: ads350668398    时间: 2014-10-28 17:53

没有了 谢谢 嘎嘎




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2