Board logo

标题: [文本处理] 批处理怎样逐行删除被读取的文本? [打印本页]

作者: zll855    时间: 2010-3-9 22:30     标题: 批处理怎样逐行删除被读取的文本?

有个问题

读取一个文本A.txt的第一行然后ping并将ping完的这一行提取到B.txt
然后删除在A.txt被ping完的这一行 循环执行直到A.txt没有内容

过程实现为:A.txt里的IP段一次一次被提取到B.txt直到A.txt无内容

文本A.txt的内容:
无规律的ip段
192.168.0.1
192.138.2.2
192.168.4.2
192.158.1.4
192.168.6.3
192.168.0.6
……

[ 本帖最后由 zll855 于 2010-3-9 22:53 编辑 ]
作者: BatCoder    时间: 2010-3-9 22:35

希望B.txt变成啥样?
作者: BatCoder    时间: 2010-3-9 22:39

第一段是指ping的结果的哪一段?
作者: zll855    时间: 2010-3-9 22:39

刚才问题问错了现在更正了
作者: zll855    时间: 2010-3-9 23:00

谢谢又被重新开放

记住了!
作者: namejm    时间: 2010-3-9 23:02

  逐行删除用纯批处理来做很费事,既然把ping过的IP段写入了B.txt,为什么还一定要把A.txt中相应的内容删掉呢?直接在最后删掉A.txt不是一样的效果么?楼主不妨把真实的目的说说,可能会有更好的方案。
作者: BatCoder    时间: 2010-3-9 23:08

直接把A.txt里面的内容复制到B.txt里面,再清空A.txt不就行了吗,干嘛非得ping一下呢?
作者: sgaizxt001    时间: 2010-3-10 10:53

楼主的意思是能PING通就把IP写到B.txt并删除,如果不能就保留?
作者: w1588848    时间: 2010-3-17 17:08

可能 就是 楼上的意思,我也想知道 这样要怎么写。
作者: sysplay    时间: 2010-3-17 21:29

  1. @echo off
  2. set /p ip=<a.txt|| exit
  3. more +1 a.txt >c.txt
  4. move c.txt a.txt
  5. ping %ip%&&echo %ip%>>b.txt
  6. %0
复制代码
不知道这个是否可以?
将ping完的这一行提取到B.txt

这一句我也是按照PING通就把IP写到B.txt来处理的。

[ 本帖最后由 sysplay 于 2010-3-17 21:38 编辑 ]
作者: BatCoder    时间: 2010-3-17 21:58     标题: 回复 10楼 的帖子

这样频繁的文件操作和调用自身是不是太浪费系统资源了?直接用 for /f 来遍历文本会比较快吧。
作者: sysplay    时间: 2010-3-18 11:10

原帖由 BatCoder 于 2010-3-17 21:58 发表
这样频繁的文件操作和调用自身是不是太浪费系统资源了?直接用 for /f 来遍历文本会比较快吧。
对,确实是浪费系统资源。谢谢。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2