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

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

本帖最后由 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

以上,感谢!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 13# gawk


     告诉你一个秘密,学生-14 木有小JJ

TOP

回复 11# sinokaire


    基本上所有关于文本处理类的想法都是可以实现的

TOP

请开新帖,很容易实现

TOP

回复 10# gawk


    嗯,明白。

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

一个文件夹内(比如:D:\11),有很多个txt文本,命名无规则。能否用BAT实现判断这些txt文本中,有多少个文本的内容中是含有字符串“AAAA”的,将包含此字符串的文本数量统计出来。

TOP

回复 9# sinokaire


    潜在问题1:系统日期格式不一定是yyyy-mm-dd

TOP

回复 8# gawk

嗯,我试了一下,好用。
只是不知道会不会出现别的问题。

TOP

回复 7# sinokaire


    你先亲自测试一下行不?

TOP

我自己照着您给的回复改了一下,您看行不?
@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%

TOP

本帖最后由 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表示。

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

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

拜谢!

TOP

回复 4# apang


    感谢前辈,搞定了!谢谢您了!

TOP

回复 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%
复制代码

TOP

本帖最后由 sinokaire 于 2012-5-8 19:56 编辑

回复 2# apang


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

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

求前辈再帮下忙,感谢了!

TOP

这样可以不?
  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%
复制代码

TOP

返回列表