中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于获取文本指定位置的问题
作者:
标题: 关于获取文本指定位置的问题 上一主题 | 下一主题
andison625
初级用户





积分 70
发帖 36
注册 2008-5-21
状态 离线
『楼 主』:  关于获取文本指定位置的问题

初来报到,有些问题和命令不熟悉,望大虾们指点一二..谢谢

我需要查出自己的IP,然后根据IP,从数据文本中,找出相对应的服务器地址.
并且要自动化地设置....  

以下是思路,和想不通的地方:

有一IP的数据地址存在文档中..格式如下:
10.248.52.63        10.248.31.15        ......               
10.248.52.64        10.248.31.16        ......               
10.248.52.65        10.248.31.16        ......               
10.248.52.166        10.248.31.16        ......               
10.248.52.67        10.248.31.32        ......               
10.248.52.168        10.248.31.32        ......               
10.248.52.69        10.248.31.32        ......               
10.248.52.170        10.248.31.33        ......               

然后,获取自己的IP,并存到myip.txt文档中
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
echo 你的IP是:%ip%
( find "%ip%"  < icdconfig.txt ) >myip.txt  ::

之后myip.txt中有了一行数据,如:
10.248.52.63        10.248.31.15             ......

这些数据是由EXCLE转来的.后边的 ".........."  都是剩下的几个服务器IP地址...两个IP地址中间的是用Tab 格开.
我需要获取 10.248.31.15 这个IP的最后一段(15这个数)
并要存到一个变量里,以后调用

问题就在这里,我要怎样才可以获得15这个数,并存到变量里,
供我再调用?
曾试用 for, findstr ,但都是不能指定这个位置.......

大家帮帮忙.....

[ Last edited by andison625 on 2008-6-1 at 09:52 AM ]

2008-5-30 17:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 2 楼』:  

看了楼主的描述,我哭了,学了这么多年的中文却搞不懂楼主所表达的意思,看来我还是要再去进修几年中文了。



批处理之家新域名:www.bathome.net
2008-5-30 18:12
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-5-30 18:12:
看了楼主的描述,我哭了,学了这么多年的中文却搞不懂楼主所表达的意思,看来我还是要再去进修几年中文了。

哈哈哈,我还以为就我这没读过什么书的看不懂,原来你也看不懂啊。。。。!



致精致简!
2008-5-30 18:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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

楼主似乎是这个意思:
for /f "tokens=2" %%a in (myip.txt) do @(for /f "delims=. tokens=4" %%b in ("%%a") do @echo.%%b)


2008-5-30 18:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
andison625
初级用户





积分 70
发帖 36
注册 2008-5-21
状态 离线
『第 5 楼』:  

我意思是...从文本获取指定位置的一个数值.
192.168.0.12      10.248.31.15

我就是要第二个IP的最后一段数字 (15这个数),并赋值给一个变量供我调用咯..

2008-6-1 09:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
andison625
初级用户





积分 70
发帖 36
注册 2008-5-21
状态 离线
『第 6 楼』:  

谢谢版主lxmxn了...
for /f "tokens=2" %%a in (myip.txt) do @(for /f "delims=. tokens=4" %%b in ("%%a") do @echo.%%b)

这个方法找到了我要的位置.

但不是很明白 for 的用法,好像跟我学过的语言有很大的区别
论坛有没有像CHM的 批处理教程供下载?
很想学好批处理......

2008-6-1 09:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liminghack
初级用户





积分 51
发帖 25
注册 2008-4-27
来自 学校
状态 离线
『第 7 楼』:  不会吧!

不知为什么,我看了楼主的描述,脑子里有点昏了!究竟是什么啊?

2008-6-1 10:02
查看资料  发送邮件  发短消息 网志  OICQ (453187173)  编辑帖子  回复  引用回复
joyn
中级用户

丶杏灬丶


积分 280
发帖 105
注册 2008-5-6
来自 广西
状态 离线
『第 8 楼』:  

@echo off&&setlocal  ENABLEDELAYEDEXPANSION
for /f "tokens=1*" %%i in (myip.txt) do (
if "%%i"=="192.168.0.12" (
echo 以应的服务器IP: %%j&&set ips=%%j
for /f "delims=. tokens=1-4 " %%a in ("!ips!") do (
set ipxs=%%d&echo 对应的服务器IP的最后一位: !ipxs!
)))




你想实现的是这样吗?
其中的变量你自己换.....不知道是否你的意思


[ Last edited by joyn on 2008-6-1 at 07:10 PM ]

2008-6-1 19:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: