Board logo

标题: 关于获取文本指定位置的问题 [打印本页]

作者: andison625     时间: 2008-5-30 17:44    标题: 关于获取文本指定位置的问题
初来报到,有些问题和命令不熟悉,望大虾们指点一二..谢谢

我需要查出自己的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 ,但都是不能指定这个位置.......

大家帮帮忙.....<img src="images/smilies/face-smile-big.png" align="absmiddle" border="0">

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

作者: bat-zw     时间: 2008-5-30 18:12
看了楼主的描述,我哭了,学了这么多年的中文却搞不懂楼主所表达的意思,看来我还是要再去进修几年中文了。

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

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

作者: lxmxn     时间: 2008-5-30 18:34
楼主似乎是这个意思:
for /f "tokens=2" %%a in (myip.txt) do @(for /f "delims=. tokens=4" %%b in ("%%a") do @echo.%%b)

作者: andison625     时间: 2008-6-1 09:40
我意思是...从文本获取指定位置的一个数值.
192.168.0.12 10.248.31.15

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

作者: andison625     时间: 2008-6-1 09:49
谢谢版主lxmxn了...
for /f "tokens=2" %%a in (myip.txt) do @(for /f "delims=. tokens=4" %%b in ("%%a") do @echo.%%b)

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

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

作者: liminghack     时间: 2008-6-1 10:02    标题: 不会吧!
不知为什么,我看了楼主的描述,脑子里有点昏了!究竟是什么啊?

作者: joyn     时间: 2008-6-1 19:05
@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 ]