Board logo

标题: 如何把IP地址段192.168.0.1-254解析成IP [打印本页]

作者: peterdocter     时间: 2007-6-12 14:07    标题: 如何把IP地址段192.168.0.1-254解析成IP

text:
192.168.0.1-254
-----------------------
要提取为ip段,开始数与结束数
就好这样:
ip段:192.168.0
开始数:1
结束数:254
注意开始数与结束数是变化的!
我的笨方法:
@echo off&SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=1,2* delims=-" %%i in (070612_S.txt) do (
  set tmp=%%i
  set end=%%j
  for /f "tokens=1,2,3,4* delims=." %%a in ("!tmp!") do (
   set ip=%%a.%%b.%%c
   set start=%%d
   echo/!start!
   echo/!end!
   echo/!ip!
  )
)

[ Last edited by bjsh on 2007-7-31 at 03:05 PM ]
作者: slore     时间: 2007-6-12 14:31
为什么不先.再-
作者: peterdocter     时间: 2007-6-12 15:00
一个for可以完成吗?
作者: peterdocter     时间: 2007-6-12 15:16
还有for /f " tokens=1,2,3,4* delims=." %%a in ('dir/b *_S.txt') do (
为什么不能在in里面用dir/b *_S.txt结果作为提取文件名?
我发现%%a变成文件名?*_*
如果让dir /b *_S.txt与以下同样效果
for /f "tokens=1,2* delims=-" %%i in (070612_S.txt)
                                                      ^^^^^^^^
作者: wudixin96     时间: 2007-6-12 16:07

@echo off
for /f "tokens=1,2,3,4* delims=.-" %%i in (1.txt) do (
  echo IP段:%%i.%%j.%%k
  echo 开始数:%%l
  echo 结束数:%%m
)
pause
像这样的笨办法不行吗?
作者: peterdocter     时间: 2007-6-12 18:16
原来还要可同时使用不同距离分割符号,多谢了!不过为什么在in(`dir /b *.txt`)不行了?非要写死1.txt,是否真得不行?是在不加一个for前提下!我记得好像在论坛看到过有人就是在in(dir/?)什么的,就可以不用写上文件名又不用加多一个for提到文件名!
作者: wudixin96     时间: 2007-6-12 18:31
用两个for应该行的。dir /b *.txt在第一个for里。
作者: lxmxn     时间: 2007-6-12 18:37
TO peterdocter:

要读取文件里面的内容,需要用“for /f %%a in (filename.ext) do ...”这样的格式来读取,如果是“for /f %%a in ('dir /b *.txt') do ...”就表示对“dir /b *.txt”命令的输出结果的内容进行分析处理,两者是不一样的。

至于in后面的(`dir /b *.txt`)需要加上“usebackq”选项之后才生效。
作者: peterdocter     时间: 2007-6-12 18:49
原来非要两个for不可,多谢了!