中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 02:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求教!批处理问题! 查看 1,152 回复 9
楼 主 求教!批处理问题! 发表于 2006-09-01 23:56 ·  中国 山东 济宁 中移铁通
初级用户
积分 32
发帖 10
注册 2006-09-01 13:43
19年会员
UID 61686
性别 男
状态 离线
大家好.我想编辑一个批处理文件,但是想不起来思路应该如何开始
我批处理文件的具体意思是:把一个文本内容进行编辑一下
比如:1.txt的内容是

-------------------------------------------------------------------------------
Performing Time: 9/1/2006 23:39:4 --> Normal Scan: About To Scan 131071 IP Using 1000 Threads
222.43.4.13 1433 Open
222.43.26.110 1433 Open
222.43.26.188 1433 Open
222.43.27.246 1433 Open
222.43.35.56 1433 Open
222.43.48.73 1433 Open
222.43.48.80 1433 Open

Scan 131071 IPs Complete In 0 Hours 7 Minutes 22 Seconds. Found 73 Hosts
-------------------------------------------------------------------------------
我想只留下里面的ip地址,请高手赐教一下,感激不劲,谢谢
2 发表于 2006-09-02 00:16 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
for /f "skip=1" %%i in (1.txt) do echo %%i>>2.txt
坏了,没注意到IP底下还有文件内容。

[ Last edited by NaturalJ0 on 2006-9-2 at 00:17 ]
3 发表于 2006-09-02 00:20 ·  中国 山东 济宁 中移铁通
初级用户
积分 32
发帖 10
注册 2006-09-01 13:43
19年会员
UID 61686
性别 男
状态 离线
谢谢你,我的意思是只保留ip地址.至于1433 open也都去掉
4 发表于 2006-09-02 00:27 ·  中国 江苏 苏州 吴中区 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
中间的 1433 和 open 不是固定的吧,有可能是其它值吧?
ip 上面一行肯定是 Performing Time 开头?
ip 下面一行肯定是 Scan 开头?
5 发表于 2006-09-02 00:29 ·  中国 四川 成都 鹏博士宽带
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线

@echo off
cd.>2.txt
for /f "skip=1 tokens=1" %%i in (1.txt) do (
if /i not "%%i"=="scan" >>2.txt echo %%i
)
start 2.txt
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
6 发表于 2006-09-03 00:15 ·  中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
19年会员
UID 61449
来自 北京
状态 离线
如果按照楼主所说,以下已经足够了
for /f %? in ('find /i "open" ^<test.txt') do @echo %?

[ Last edited by pip on 2006-9-3 at 00:17 ]
我今后在论坛的目标就是做个超级坏人!!!
7 发表于 2006-09-03 00:51 ·  中国 四川 成都 鹏博士宽带
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  pip的代码十分精练,突破了用for语句的常规思维,充分利用条件来写代码,还用重定向来屏蔽find输出格式中的线条,高。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
8 发表于 2006-09-03 02:55 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
Originally posted by pip at 2006-9-3 00:15:
如果按照楼主所说,以下已经足够了
for /f %? in ('find /i "open" ^<test.txt') do @echo %?

[ Last edited by pip on 2006-9-3 at 00:17 ]

高,重定向学下,回去用上
9 发表于 2006-09-03 05:10 ·  中国 山东 济宁 中移铁通
初级用户
积分 32
发帖 10
注册 2006-09-01 13:43
19年会员
UID 61686
性别 男
状态 离线
谢谢各位给我的帮助
10 发表于 2006-09-03 23:49 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
兄弟扫1433服务器溢出, 其实你用文本文件中的替换功能就可以轻易实现了.
查找: 1433 Open
替换:
选全部替换~
论坛跳转: