|
malongxa
初级用户
积分 26
发帖 11
注册 2005-11-9
状态 离线
|
『楼 主』:
请教:如何在txt中搜索特定的字符串
如果在xp/2003/2000的dos中有一个文本as.txt内容为( Pinging www.cctv.chinacache.net [218.30.70.56] with 32 bytes of data,我如何提取[后和]前的ip部分,注IP为可变数字,然后将此IP>>到另一个txt,谢谢!
|
|
2005-11-9 15:03 |
|
|
bush
银牌会员
积分 2165
发帖 730
注册 2004-4-21
状态 离线
|
『第
2 楼』:
你可以看一下find命令
我没xp
如果是我在dos下,我会按‘[’和‘]‘把文字截断比如:
Pinging www.cctv.chinacache.net [
218.30.70.56]
with 32 bytes of data
然后提取含‘]‘的行就是了
|
|
2005-11-9 16:17 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
3 楼』:
Re malongxa:
试试在命令行运行以下命令试试看,如果可行再告诉你具体的要求,然后我可以尝试给出更完整健壮的方案。
for /f "delims=[] tokens=2" %i in (as.txt) do echo.%i>>Result.txt
|
※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2005-11-9 17:40 |
|
|
malongxa
初级用户
积分 26
发帖 11
注册 2005-11-9
状态 离线
|
『第
4 楼』:
版主你太强了,我用你的方法for /f "delims=[] tokens=2" %i in (as.txt) do echo.%i>>temp得到了我要得结果,而且使我学到了东西,谢谢,再次感谢!!!
|
|
2005-11-10 09:26 |
|
|
malongxa
初级用户
积分 26
发帖 11
注册 2005-11-9
状态 离线
|
『第
5 楼』:
版主我想首先ping xxx.com 在得出的结果里找到ip(yyy.yyy.yyy.yyy),在将这个作为另外一个命令ping的执行参数如ping yyy.yyy.yyy.yyy,因为我用的是动态IP所以每次IP变了后,都会很麻烦,我想学着自己编批处理,可是很多参数都不明白,希望能向版主多多学习,谢谢!!
|
|
2005-11-10 10:38 |
|
|
malongxa
初级用户
积分 26
发帖 11
注册 2005-11-9
状态 离线
|
『第
6 楼』:
我编的批处理cctv.bat
ping www.cctv.com >as.txt
for /f "delims=[] token=2" %i in (as.txt) do ping %i
单独执行每行都行,可是合起来执行就不行了,请指点,谢谢!
|
|
2005-11-10 15:25 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
7 楼』:
Re malongxa:
在批处理文件中使用 for 语句时,其中的替代变量必须用双百分号做前导,即%i应改为%%i,这源于在批处理和命令行中解析代码行所存在的差异性。
另外,这两句代码可以尝试用一句实现,仍然给出命令行下的方案:
for /f "delims=[] token=2" %i in ('ping www.cctv.com') do ping %i
|
※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2005-11-10 19:51 |
|
|
bush
银牌会员
积分 2165
发帖 730
注册 2004-4-21
状态 离线
|
『第
8 楼』:
可惜dos/98下都不能使用那麽多的for參數~
|
|
2005-11-10 22:22 |
|
|
malongxa
初级用户
积分 26
发帖 11
注册 2005-11-9
状态 离线
|
『第
9 楼』:
谢谢版主帮助,我还想进一步完善我的想法,假设我现有一个文本as.txt
Alternate TCP addresses for
Local Address Alternate Address
-------------------- --------------------
Default 219.137.124.26
我要取文本中的IP即(219.137.124.26)
将这个IP和ping www.cctv.com里取得的IP相比较
如果IP相同则无动作
如果IP不同则执行
for /f "delims=[] token=2" %i in ('ping www.cctv.com') do ping %i,
再次感谢版主指点
[ Last edited by malongxa on 2005-11-11 at 14:28 ]
|
|
2005-11-11 10:18 |
|
|
malongxa
初级用户
积分 26
发帖 11
注册 2005-11-9
状态 离线
|
『第
10 楼』:
我已经可以提取AS.TXT中的IP了
用for /f "delims=ault tokens=2" %i in (as.txt) do echo %i
可是提取的IP前含有空格
现在是不知道如何比较和判断这个IP和ping www.cctv.com里提取IP的不同
请指点,谢谢!
|
|
2005-11-11 14:34 |
|
|
无奈何
荣誉版主
积分 1338
发帖 356
注册 2005-7-15
状态 离线
|
『第
11 楼』:
Quote: | 用for /f "delims=ault tokens=2" %i in (as.txt) do echo %i
可是提取的IP前含有空格 |
|
换个顺序,这样:
for /f "tokens=2 delims= " %i in (as.txt) do echo %i
我实在不知道你最终想干什么,下面是你第 9 楼要得功能。
存为批文件执行。
for /f "tokens=2 delims=[]" %%i in ('ping www.cctv.com') do set a=%%i
for /f "tokens=2 delims= " %%i in (as.txt) do set b=%%i
if "%a%" NEQ "%b%" for /f "tokens=2 delims=[]" %%i in ('ping www.cctv.com') do ping %%i
|
|
2005-11-12 00:55 |
|
|
malongxa
初级用户
积分 26
发帖 11
注册 2005-11-9
状态 离线
|
『第
12 楼』:
谢谢你无奈何,我按你的指点测试了下成功了,如果我还是以a,b为判断条件接着执行命令,那我是否可以在你的批处理后加上
if "%a%" NEQ "%b%" ping www.cctv.com
还是直接在if "%a%" NEQ "%b%" for /f "tokens=2 delims=[]" %%i in ('ping www.cctv.com') do ping %%i 后加ping www.cctv.com
写成if "%a%" NEQ "%b%" for /f "tokens=2 delims=[]" %%i in ('ping www.cctv.com') do ping %%i ping www.cctv.com
再次感谢!
|
|
2005-11-13 00:28 |
|
|
无奈何
荣誉版主
积分 1338
发帖 356
注册 2005-7-15
状态 离线
|
『第
13 楼』:
if ... 后直接跟你要执行的语句就行了。
如果多条语句可以用 & 连接
例:
if "%a%" NEQ "%b%" dir
if "%a%" NEQ "%b%" dir & echo OK
|
|
2005-11-13 00:43 |
|
|
zzhynxxn
新手上路
积分 16
发帖 6
注册 2005-11-14
状态 离线
|
『第
14 楼』:
如果我想从一个文本中任意取值,我该怎么做。谢谢!!!
比如有个文本a.txt,内容如下:
Local Address Alternate Address
我要取其中的“nate”,我该怎么做
|
|
2005-11-14 11:07 |
|
|
malongxa
初级用户
积分 26
发帖 11
注册 2005-11-9
状态 离线
|
『第
15 楼』:
能否请版主和无奈何两位高手详细介绍一下"delims=[] token=2"的用法,我还是没办法抓取特定的字符,再次谢谢两位高手!!
|
|
2005-11-14 22:10 |
|