中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何把IP地址段192.168.0.1-254解析成IP
作者:
标题: 如何把IP地址段192.168.0.1-254解析成IP 上一主题 | 下一主题
peterdocter
中级用户




积分 379
发帖 95
注册 2003-7-17
状态 离线
『楼 主』:  如何把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 ]

2007-6-12 14:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

为什么不先.再-

2007-6-12 14:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
peterdocter
中级用户




积分 379
发帖 95
注册 2003-7-17
状态 离线
『第 3 楼』:  

一个for可以完成吗?

2007-6-12 15:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
peterdocter
中级用户




积分 379
发帖 95
注册 2003-7-17
状态 离线
『第 4 楼』:  

还有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)
                                                      ^^^^^^^^

2007-6-12 15:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 5 楼』:  


@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
像这样的笨办法不行吗?

2007-6-12 16:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
peterdocter
中级用户




积分 379
发帖 95
注册 2003-7-17
状态 离线
『第 6 楼』:  

原来还要可同时使用不同距离分割符号,多谢了!不过为什么在in(`dir /b *.txt`)不行了?非要写死1.txt,是否真得不行?是在不加一个for前提下!我记得好像在论坛看到过有人就是在in(dir/?)什么的,就可以不用写上文件名又不用加多一个for提到文件名!

2007-6-12 18:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 7 楼』:  

用两个for应该行的。dir /b *.txt在第一个for里。

2007-6-12 18:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 8 楼』:  

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”选项之后才生效。

2007-6-12 18:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
peterdocter
中级用户




积分 379
发帖 95
注册 2003-7-17
状态 离线
『第 9 楼』:  

原来非要两个for不可,多谢了!

2007-6-12 18:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: