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

[文本处理] [已解决]批处理如何删除文本中不包含指定字符串的行?

[复制链接]
发表于 2012-5-8 18:06:49 | 显示全部楼层 |阅读模式
本帖最后由 sinokaire 于 2012-5-10 09:52 编辑

请教各位前辈:
如何用批处理实现删除D:\a\b\c.txt中,不含指定字符串"RRFF"的行.
其中:a为系统时间当前年,b为系统时间当前月,c为系统时间当前日。
例如:当前系统时间为:2010.12.23,则删除D:\2010\12\23.txt中不含"RRFF"行。

假设23.txt中的内容为:

001 RRFF 12345678 12
002 asdf 12345678 12
003 aaaa 12345678 12
004 RRFF 12345678 12

运行批处理后,23.txt中的内容变为:

001 RRFF 12345678 12
004 RRFF 12345678 12

以上,感谢!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-5-8 18:58:19 | 显示全部楼层
这样可以不?
  1. @echo off
  2. set "name=d:\%date:~,4%\%date:~5,2%\%date:~8,2%.txt"
  3. (for /f "delims=" %%a in ('findstr /i "RRFF" %name%') do (
  4.    echo %%a
  5. ))>$
  6. move $ %name%
复制代码
 楼主| 发表于 2012-5-8 19:45:50 | 显示全部楼层
本帖最后由 sinokaire 于 2012-5-8 19:56 编辑

回复 2# apang


    感谢前辈的回复,有一个问题,我这的程式生成的目录和文件名的现状是这样的:

比如今天是2012.05.08,程式自动建议的目录和txt文件为:d:\2012\5\8.txt,而不是D:\2012\05\08.txt。。。。

求前辈再帮下忙,感谢了!
发表于 2012-5-8 20:18:21 | 显示全部楼层
回复 3# sinokaire
  1. @echo off
  2. set/a b=100%date:~5,2%%%100
  3. set/a c=100%date:~8,2%%%100
  4. set "name=d:\%date:~,4%\%b%\%c%.txt"
  5. (for /f "delims=" %%a in ('findstr /i "RRFF" %name%') do (
  6.    echo %%a
  7. ))>$
  8. move $ %name%
复制代码
 楼主| 发表于 2012-5-9 07:48:06 | 显示全部楼层
回复 4# apang


    感谢前辈,搞定了!谢谢您了!
 楼主| 发表于 2012-5-9 12:43:38 | 显示全部楼层
本帖最后由 sinokaire 于 2012-5-9 12:46 编辑

回复 4# apang


    前辈,首先感谢你的给力回复!由于我个人的不严谨,未仔细确认我处软件生成的目录及文件命名格式。导致您给的程式暂时无法使用。

我处的软件生成目录及文件格式明确如下:

若当前系统日期为:2012.5.8,则生成目录为:D:\test\log\V_COM\2012_05\8.txt

即:生成一个“年_月”目录,在这个目录里生成“日.txt” ; 个位数月份用:01、02....09表示,个位数日用 1、2...9表示。

以上,不知有没有表达清楚...

望前辈能在不忙的时候,再辛苦一次,给回复一个解决方法。

拜谢!
 楼主| 发表于 2012-5-9 12:56:56 | 显示全部楼层
我自己照着您给的回复改了一下,您看行不?
@echo off

set/a c=100%date:~8,2%%%100

set "name=D:\lcdtest\Log\V_COM\%date:~,4%_%date:~5,2%\%c%.txt"

(for /f "delims=" %%a in ('findstr /i "RRFF" %name%') do (

   echo %%a

))>$

move $ %name%
发表于 2012-5-9 12:58:37 | 显示全部楼层
回复 7# sinokaire


    你先亲自测试一下行不?
 楼主| 发表于 2012-5-9 13:02:39 | 显示全部楼层
回复 8# gawk

嗯,我试了一下,好用。
只是不知道会不会出现别的问题。
发表于 2012-5-9 13:09:53 | 显示全部楼层
回复 9# sinokaire


    潜在问题1:系统日期格式不一定是yyyy-mm-dd
 楼主| 发表于 2012-5-9 13:26:44 | 显示全部楼层
回复 10# gawk


    嗯,明白。

另外,有个想法不知道能不能用BAT实现。

一个文件夹内(比如:D:\11),有很多个txt文本,命名无规则。能否用BAT实现判断这些txt文本中,有多少个文本的内容中是含有字符串“AAAA”的,将包含此字符串的文本数量统计出来。
发表于 2012-5-10 10:23:10 | 显示全部楼层
请开新帖,很容易实现
发表于 2012-5-10 13:07:43 | 显示全部楼层
回复 11# sinokaire


    基本上所有关于文本处理类的想法都是可以实现的
发表于 2012-5-13 19:50:25 | 显示全部楼层
回复 13# gawk


     告诉你一个秘密,学生-14 木有小JJ
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 04:59 , Processed in 0.010343 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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