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

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

网上找到路由表基本是这种格式的:
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
.......................................

本人是菜鸟,求大神帮助......!!!!!

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

TOP

这个不行啊。。。。。关系到子网掩码。。。。这样输出没用啊
220.115.0.0/16
220.115.0.0/22 假如是这样地址就不对了啊

TOP

顺便问一上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
怎么样加入判定第三字符再输出?

TOP

@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
多重判定为什么不可以啊。。。

TOP

set /a t = %%b

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

TOP

返回列表