找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: hacker85

[文本处理] 批处理实现删除指定行功能

[复制链接]
 楼主| 发表于 2012-2-6 20:40:55 | 显示全部楼层
本帖最后由 hacker85 于 2012-2-6 20:42 编辑

回复 3# ivor


    第二段代码确实是没有删除行的功能,我反复测试了几次。比如删除第一行和第二列。
9楼的朋友上传了一份代码,可以实现同时删除。
 楼主| 发表于 2012-2-7 10:18:56 | 显示全部楼层
回复 3# ivor


    第二段代码我放到一个64位的 win7系统中使用是正确的,可以删除行了。
但是我想不是系统多少位的原因。

可是在我家里的机器上确实是不能删除行,这是为什么呢?
发表于 2012-2-7 11:00:44 | 显示全部楼层
不知道丫
 楼主| 发表于 2012-2-8 20:35:29 | 显示全部楼层
回复 33# ivor


    在吗?我给你发了私信,里面有我的QQ。我可以把代码的执行情况给你反映一下。
发表于 2016-8-11 14:13:06 | 显示全部楼层
回复 9# apang

你的功能是很好,
但是如果 是多行删除,如何操作??

能否修改成这样的一个批处理文件,谢谢了:
方案1
删除 文本1.txt 第7到 107行的内容,
删除 文本1.txt 第122(7+115)到225(107+115)行的内容,
...
删除  文本1.txt 第(7+115*x)到225(107+115*x)行的内容, 直至文本最后
行程形成新的文件2.txt


或者也可以是
方案2
读取 文本1.txt 第1到6 行的内容, 第108到115 行的内容 复制 写入 2.txt
读取 文本1.txt 第1+115*x到6+115*x 行的内容, 第108+115*x到115+115*x 行的内容 复制 写入 2.txt   直至文本最后
x不确定。
发表于 2016-8-11 14:25:10 | 显示全部楼层
回复 35# chm8624

@findstr /i /v /c:"Request timed out" /c:"TTL=" "D:\1.txt"
@pause
发表于 2016-8-11 14:59:38 | 显示全部楼层
回复 36# pcl_test


    版主,你的代码很有效,我自己改了一下,使之输出到 文件:
@findstr /i /v /c:"Request timed out" /c:"TTL=" "C:\00_EIS\1.txt" >>RR_01.txt
@pause

能大概的讲解一下吗?
我只能够 猜到, "Request timed out"  表示 删除 带有 "Request timed out" 的那一行,"TTL="表示会删除 带有"TTL="的那一行

处理后的文本:
--------------------------------------------------  
Start at
2016/08/08 周一
20:03:18.32

Pinging google.com [74.125.130.138] with 32 bytes of data:

Ping statistics for 74.125.130.138:
    Packets: Sent = 100, Received = 100, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 78ms, Maximum = 114ms, Average = 84ms
end at
2016/08/08 周一
20:04:57.80
--------------------------------------------------  



待处理的文本:
--------------------------------------------------  
Start at
2016/08/08 周一
20:03:18.32

Pinging google.com [74.125.130.138] with 32 bytes of data:
Reply from 74.125.130.101: bytes=32 time=82ms TTL=41
Request timed out.
......
Reply from 74.125.130.101: bytes=32 time=82ms TTL=41

Ping statistics for 74.125.130.138:
    Packets: Sent = 100, Received = 100, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 78ms, Maximum = 114ms, Average = 84ms
end at
2016/08/08 周一
20:04:57.80
--------------------------------------------------
发表于 2016-8-11 15:02:07 | 显示全部楼层
回复 37# chm8624

cmd窗口查看 findstr /?命令
发表于 2016-8-11 15:17:21 | 显示全部楼层
回复 38# pcl_test

谢谢指导。

还有一点,如何删除 “空的行” 或者 屏蔽符比如 回车,空格等等。

@  命令行回显屏蔽符
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]
  /I         指定搜索不分大小写。
  /V        只打印不包含匹配的行。
  /C:string 使用指定字符串作为文字搜索字符串。
发表于 2016-8-11 15:27:08 | 显示全部楼层
本帖最后由 pcl_test 于 2016-8-11 16:54 编辑

回复 39# chm8624
  1. ::删除空行
  2. findstr /rc:"[^         ]" "1.txt"
复制代码

评分

参与人数 1技术 +1 收起 理由
chm8624 + 1 有效实用

查看全部评分

发表于 2016-8-11 16:42:20 | 显示全部楼层
回复 40# pcl_test


    谢谢!

::删除多余信息
@findstr /i /v /c:"Request timed out" /c:"TTL=" /c:"Start at" /c:"end at" /c:"Ping statistics"  "C:\00_EIS\1.txt" >>R1_1.txt
::删除空行
findstr /rc:"[^         ]"  "R1_1.txt" >>R2_1.txt
@pause

结果很完美了,
--------------------------------------------------  
2016/08/08 周一
20:03:18.32
Pinging google.com [74.125.130.138] with 32 bytes of data:
    Packets: Sent = 100, Received = 100, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 78ms, Maximum = 114ms, Average = 84ms
2016/08/08 周一
20:04:57.80
--------------------------------------------------  
--------------------------------------------------  
2016/08/08 周一
20:33:26.59
Pinging google.com [74.125.130.101] with 32 bytes of data:
    Packets: Sent = 100, Received = 99, Lost = 1 (1% loss),
Approximate round trip times in milli-seconds:
    Minimum = 81ms, Maximum = 83ms, Average = 81ms
2016/08/08 周一
20:35:09.60
--------------------------------------------------
发表于 2016-11-10 17:06:13 | 显示全部楼层
回复 9# apang

为什么处理完,所有txt内容都是很多列~3。
发表于 2016-11-10 17:06:58 | 显示全部楼层
回复 41# chm8624
求分享代码。谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 10:37 , Processed in 0.017439 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表