![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-26 02:08 |
共 47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教:如何在txt中搜索特定的字符串 |
| 可打印版本 5,386 / 20 |
| 第1楼 malongxa | 发表于 2005-11-09 15:03 |
| 初级用户 发帖 11 积分 26 | |
|
请教:如何在txt中搜索特定的字符串 如果在xp/2003/2000的dos中有一个文本as.txt内容为( Pinging www.cctv.chinacache.net with 32 bytes of data
,我如何提取前的ip部分,注IP为可变数字,然后将此IP>>到另一个txt,谢谢! |
|
| 第2楼 bush | 发表于 2005-11-09 16:17 |
| 银牌会员 发帖 730 积分 2,165 | |
|
你可以看一下find命令 我没xp
如果是我在dos下,我会按‘‘把文字截断比如: Pinging www.cctv.chinacache.net with 32 bytes of data 然后提取含‘]‘的行就是了 |
|
| 第3楼 willsort | 发表于 2005-11-09 17:40 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re malongxa:
试试在命令行运行以下命令试试看,如果可行再告诉你具体的要求,然后我可以尝试给出更完整健壮的方案。 for /f "delims=[] tokens=2" %i in (as.txt) do echo.%i>>Result.txt |
|
| 第4楼 malongxa | 发表于 2005-11-10 09:26 |
| 初级用户 发帖 11 积分 26 | |
|
版主你太强了,我用你的方法for /f "delims=[] tokens=2" %i in (as.txt) do echo.%i>>temp得到了我要得结果,而且使我学到了东西,谢谢,再次感谢!!!
|
|
| 第5楼 malongxa | 发表于 2005-11-10 10:38 |
| 初级用户 发帖 11 积分 26 | |
|
版主我想首先ping xxx.com 在得出的结果里找到ip(yyy.yyy.yyy.yyy),在将这个作为另外一个命令ping的执行参数如ping yyy.yyy.yyy.yyy,因为我用的是动态IP所以每次IP变了后,都会很麻烦,我想学着自己编批处理,可是很多参数都不明白,希望能向版主多多学习,谢谢!!
|
|
| 第6楼 malongxa | 发表于 2005-11-10 15:25 |
| 初级用户 发帖 11 积分 26 | |
|
我编的批处理cctv.bat
ping www.cctv.com >as.txt for /f "delims= token=2" %i in (as.txt) do ping %i 单独执行每行都行,可是合起来执行就不行了,请指点,谢谢! |
|
| 第7楼 willsort | 发表于 2005-11-10 19:51 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re malongxa:
在批处理文件中使用 for 语句时,其中的替代变量必须用双百分号做前导,即%i应改为%%i,这源于在批处理和命令行中解析代码行所存在的差异性。 另外,这两句代码可以尝试用一句实现,仍然给出命令行下的方案: for /f "delims= token=2" %i in ('ping www.cctv.com') do ping %i |
|
| 第8楼 bush | 发表于 2005-11-10 22:22 |
| 银牌会员 发帖 730 积分 2,165 | |
|
可惜dos/98下都不能使用那麽多的for參數~
|
|
| 第9楼 malongxa | 发表于 2005-11-11 10:18 |
| 初级用户 发帖 11 积分 26 | |
|
谢谢版主帮助,我还想进一步完善我的想法,假设我现有一个文本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 ] |
|
| 第10楼 malongxa | 发表于 2005-11-11 14:34 |
| 初级用户 发帖 11 积分 26 | |
|
我已经可以提取AS.TXT中的IP了
用for /f "delims=ault tokens=2" %i in (as.txt) do echo %i 可是提取的IP前含有空格 现在是不知道如何比较和判断这个IP和ping www.cctv.com里提取IP的不同 请指点,谢谢! |
|
| 第11楼 无奈何 | 发表于 2005-11-12 00:55 |
| 荣誉版主 发帖 356 积分 1,338 | |
换个顺序,这样: for /f "tokens=2 delims= " %i in (as.txt) do echo %i 我实在不知道你最终想干什么,下面是你第 9 楼要得功能。 存为批文件执行。 |
|
| 第12楼 malongxa | 发表于 2005-11-13 00:28 |
| 初级用户 发帖 11 积分 26 | |
|
谢谢你无奈何,我按你的指点测试了下成功了,如果我还是以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 再次感谢! |
|
| 第13楼 无奈何 | 发表于 2005-11-13 00:43 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
if ... 后直接跟你要执行的语句就行了。
如果多条语句可以用 & 连接 例: if "%a%" NEQ "%b%" dir if "%a%" NEQ "%b%" dir & echo OK |
|
| 第14楼 zzhynxxn | 发表于 2005-11-14 11:07 |
| 新手上路 发帖 6 积分 16 | |
|
如果我想从一个文本中任意取值,我该怎么做。谢谢!!!
比如有个文本a.txt,内容如下: Local Address Alternate Address 我要取其中的“nate”,我该怎么做 |
|
| 第15楼 malongxa | 发表于 2005-11-14 22:10 |
| 初级用户 发帖 11 积分 26 | |
|
能否请版主和无奈何两位高手详细介绍一下"delims=[] token=2"的用法,我还是没办法抓取特定的字符,再次谢谢两位高手!!
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |