中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 01:07
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于获取文本指定位置的问题 查看 727 回复 7
楼 主 关于获取文本指定位置的问题 发表于 2008-05-30 17:44 ·  中国 广东 广州 移动
初级用户
积分 70
发帖 36
注册 2008-05-21 22:48
18年会员
UID 119349
性别 男
状态 离线
初来报到,有些问题和命令不熟悉,望大虾们指点一二..谢谢

我需要查出自己的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 ]
2 发表于 2008-05-30 18:12 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
看了楼主的描述,我哭了,学了这么多年的中文却搞不懂楼主所表达的意思,看来我还是要再去进修几年中文了。
批处理之家新域名:www.bathome.net
3 发表于 2008-05-30 18:19 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
Originally posted by zw19750516 at 2008-5-30 18:12:
看了楼主的描述,我哭了,学了这么多年的中文却搞不懂楼主所表达的意思,看来我还是要再去进修几年中文了。

哈哈哈,我还以为就我这没读过什么书的看不懂,原来你也看不懂啊。。。。!
致精致简!
4 发表于 2008-05-30 18:34 ·  中国 湖北 武汉 联通
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
楼主似乎是这个意思:
for /f "tokens=2" %%a in (myip.txt) do @(for /f "delims=. tokens=4" %%b in ("%%a") do @echo.%%b)
5 发表于 2008-06-01 09:40 ·  中国 广东 广州 移动
初级用户
积分 70
发帖 36
注册 2008-05-21 22:48
18年会员
UID 119349
性别 男
状态 离线
我意思是...从文本获取指定位置的一个数值.
192.168.0.12 10.248.31.15

我就是要第二个IP的最后一段数字 (15这个数),并赋值给一个变量供我调用咯..
6 发表于 2008-06-01 09:49 ·  中国 广东 广州 移动
初级用户
积分 70
发帖 36
注册 2008-05-21 22:48
18年会员
UID 119349
性别 男
状态 离线
谢谢版主lxmxn了...
for /f "tokens=2" %%a in (myip.txt) do @(for /f "delims=. tokens=4" %%b in ("%%a") do @echo.%%b)

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

但不是很明白 for 的用法,好像跟我学过的语言有很大的区别
论坛有没有像CHM的 批处理教程供下载?
很想学好批处理......
7 不会吧! 发表于 2008-06-01 10:02 ·  中国 江西 九江 电信
初级用户
积分 51
发帖 25
注册 2008-04-27 10:13
18年会员
UID 117080
性别 男
来自 学校
状态 离线
不知为什么,我看了楼主的描述,脑子里有点昏了!究竟是什么啊?
8 发表于 2008-06-01 19:05 ·  中国 广西 南宁 电信
中级用户
★★
丶杏灬丶
积分 280
发帖 105
注册 2008-05-06 03:37
18年会员
UID 117858
性别 男
来自 广西
状态 离线
@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 ]
论坛跳转: