Board logo

标题: [文本处理] [求助]路由表格式转换有哪位大神会的吗?指导一下,感激不尽 [打印本页]

作者: ttkvk    时间: 2014-11-1 17:48     标题: [求助]路由表格式转换有哪位大神会的吗?指导一下,感激不尽

网上找到路由表基本是这种格式的:
180.88.0.0/16
220.115.0.0/16
220.115.0.0/16
211.161.0.0/16
211.162.0.0/16
220.113.0.0/16
220.112.0.0/16
220.113.0.0/16
220.114.0.0/16
220.115.0.0/16
203.86.65.0/24
203.86.67.0/24
203.86.68.0/24
需要把他转成类似这样的:
180.88.64.0-180.88.95.255
220.115.8.0-220.115.15.255
220.115.224.0-220.115.227.255
211.161.20.0-211.161.27.255
211.162.32.0-211.162.39.255
211.162.236.0-211.162.239.255
220.113.168.0-220.113.187.255
211.161.0.0-211.162.255.255
220.112.0.0-220.115.255.255
203.86.65.0-203.86.65.255
203.86.67.0-203.86.67.255
203.86.68.0-203.86.68.255
203.86.69.0-203.86.69.255
.......................................

本人是菜鸟,求大神帮助......!!!!!
作者: CrLf    时间: 2014-11-1 20:08

  1. @(for /f "tokens=1,2 delims=/ " %%a in (原.txt) do @echo %%a-%%~na.%%b)>路由表.txt
复制代码

作者: ttkvk    时间: 2014-11-1 20:45

这个不行啊。。。。。关系到子网掩码。。。。这样输出没用啊
220.115.0.0/16
220.115.0.0/22 假如是这样地址就不对了啊
作者: ttkvk    时间: 2014-11-1 20:50

顺便问一上for语句里面可以放几个if判断
@echo off
setlocal enabledelayedexpansion
(for /f "tokens=1-5" %%a in (a.txt) do (
        if %%e == 15 (
                set /a t = %%b + 1
                echo %%a.%%b.0.1-%%a.!t!.255.254
        )
))>>d:\ip\5.txt
怎么样加入判定第三字符再输出?
作者: ttkvk    时间: 2014-11-1 21:31

@echo off
setlocal enabledelayedexpansion
(for /f "tokens=1-5" %%a in (a.txt) do (if %%c beq 0 (if %%e == 15 (set /a t = %%b + 1 echo %%a.%%b.0.1-%%a.!t!.255.254))))>>d:\5.txt
pause
多重判定为什么不可以啊。。。
作者: DAIC    时间: 2014-11-2 21:14

set /a t = %%b

BAT的语法比较严格,等号两边不能加空格。




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