中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 22:46
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何把IP地址段192.168.0.1-254解析成IP
可打印版本  958 / 8
第1楼 peterdocter 发表于 2007-06-12 14:07
中级用户 发帖 95 积分 379
如何把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 ]
第2楼 slore 发表于 2007-06-12 14:31
铂金会员 发帖 2,478 积分 5,212
为什么不先.再-
第3楼 peterdocter 发表于 2007-06-12 15:00
中级用户 发帖 95 积分 379
一个for可以完成吗?
第4楼 peterdocter 发表于 2007-06-12 15:16
中级用户 发帖 95 积分 379
还有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)
^^^^^^^^
第5楼 wudixin96 发表于 2007-06-12 16:07
银牌会员 发帖 931 积分 1,928


像这样的笨办法不行吗?
第6楼 peterdocter 发表于 2007-06-12 18:16
中级用户 发帖 95 积分 379
原来还要可同时使用不同距离分割符号,多谢了!不过为什么在in(`dir /b *.txt`)不行了?非要写死1.txt,是否真得不行?是在不加一个for前提下!我记得好像在论坛看到过有人就是在in(dir/?)什么的,就可以不用写上文件名又不用加多一个for提到文件名!
第7楼 wudixin96 发表于 2007-06-12 18:31
银牌会员 发帖 931 积分 1,928
用两个for应该行的。dir /b *.txt在第一个for里。
第8楼 lxmxn 发表于 2007-06-12 18:37
版主 发帖 4,938 积分 11,386
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”选项之后才生效。
第9楼 peterdocter 发表于 2007-06-12 18:49
中级用户 发帖 95 积分 379
原来非要两个for不可,多谢了!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023