|
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
状态 离线
|
|
2007-6-12 14:31 |
|
|
peterdocter
中级用户
积分 379
发帖 95
注册 2003-7-17
状态 离线
|
|
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 |
|