Board logo

标题: [文本处理] 批处理如何提取IP的前2位并拆开后两位为0到255? [打印本页]

作者: wifayy    时间: 2011-3-26 18:28     标题: 批处理如何提取IP的前2位并拆开后两位为0到255?

58.60.33.5 58.70.11.123

以为文本保存为1.TXT

读取以上内容
用BAT 修改为
58.60.0.0
58.60.0.1
58.60.0.2
58.60.0.3
.........
........
.........
........
58.70.255.255


能做到吗 先谢过大家了
作者: weichenxiehou    时间: 2011-3-26 18:57

本帖最后由 weichenxiehou 于 2011-3-26 19:03 编辑

问题描述得不是很清楚,如果ip固定,用for /l 解决:
  1. @echo off
  2. cd.>1.txt&echo,正在生成,稍后...
  3. for %%i in (60 70) do (
  4.   for /l %%a in (0 1 255) do (
  5.     for /l %%b in (0 1 255) do echo,58.%%i.%%a.%%b
  6. ))>>1.txt
复制代码
如果你这些要提取的ip地址放在文本文件中,又另当别论,请把问题描述更具体些。
作者: wifayy    时间: 2011-3-27 02:08

是这样的  有一个文本为IP.TXT 内容为 58.60.21.1 58.61.22.35

我需要用BAT把他们转换成
58.60.0.0
58.60.0.1
58.60.0.2
.......
......
....
.....
....
...
58.61.255.255
保存为1.TXT

意思就是提取IP.TXT里的IP 58.60 和58.61 这个前2位 后面的则用0到255代替 然后将他们排列从
58.60.0.0 开始 一直排到58.61.255.255  就是只取IP.TXT里的IP地址的前2位

多谢LS
作者: weichenxiehou    时间: 2011-3-27 08:34

本帖最后由 weichenxiehou 于 2011-3-27 08:35 编辑

如果这两个ip地址位于ip.txt的第一行靠前,中间用空格分隔,且只有这一行:
  1. @echo off
  2. cd.>1.txt&echo,正在生成,稍后...
  3. for /f "tokens=1,2,5,6 delims=. " %%i in (ip.txt) do set ip1=%%i.%%j&set ip2=%%k.%%l
  4. for %%i in (%ip1% %ip2%) do (
  5.   for /l %%a in (0 1 255) do (
  6.     for /l %%b in (0 1 255) do (
  7.       echo,%%i.%%a.%%b
  8. )))>>1.txt
复制代码

作者: wifayy    时间: 2011-3-27 13:13

非常感谢 weichenxiehou  的帮助

现在又有个新问题 如果IP.TXT里有多行IP 并且都不同的 该怎么办呢




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