Board logo

标题: [文件操作] [已解决]批处理如何查找出内容含有指定字符串且修改时间在指定日期时间之后的txt文件 [打印本页]

作者: syqh2010    时间: 2015-3-4 01:36     标题: [已解决]批处理如何查找出内容含有指定字符串且修改时间在指定日期时间之后的txt文件

本帖最后由 pcl_test 于 2016-8-6 18:23 编辑

批处理如何提取含有关键字的文件名
文件夹下有很多txt文本,请问如何列出文本内容含有“ABCD”且修改时间>2015-3-1 8:05 文本列表

11.txt
12.txt

答案见4楼
作者: cobat    时间: 2015-3-4 09:28

本帖最后由 cobat 于 2015-3-4 10:02 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('findstr /m ABCD *.txt') do (
  3.     set t=%%~ta
  4.     set t=!t:/=!
  5.     set t=!t::=!
  6.     set t=!t: =!
  7.     if !t:~3! gtr 503010805 echo %%a
  8. )
  9. pause
复制代码

作者: syqh2010    时间: 2015-3-4 10:09

回复 2# cobat

谢谢,就是这样的。
请帮忙改一下,加上需处理文件的路径名
结果输出到a.txt
(bat与a.txt在同一目录,需处理文件在另一目录)
谢谢!
作者: cobat    时间: 2015-3-4 11:14

本帖最后由 cobat 于 2015-3-6 16:57 编辑

回复 3# syqh2010
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set p="目录完整路径"
  4. (for /f "delims=" %%a in ('findstr/mlig:str.txt %p%\*.txt') do (
  5.     set t=%%~ta
  6.     set t=!t:/=!
  7.     set t=!t::=!
  8.     set t=!t: =!
  9.     if !t:~^,4! gtr 2015 echo %%~nxa
  10.     if !t:~^,4! equ 2015 (if !t:~2! gtr 1503010805 echo %%~nxa)
  11. ))>a.txt
  12. pause
复制代码
在bat同目录下新建str.txt
按以下格式写入搜索字符串
  1. A BC
  2. OP: 123
  3. :name: h32
复制代码

作者: syqh2010    时间: 2015-3-5 00:53

本帖最后由 syqh2010 于 2015-3-5 02:21 编辑

回复 4# cobat

谢谢你,可以达到效果!
只是输出的内容带有路径,如:
E:\test\1.txt

希望输出结果不带路径
1.txt

另外,如果关键字是“A  BC"(有空格),则会提示”无法打开BC",会把路径下的所有文本名都列出来。
作者: cobat    时间: 2015-3-5 10:19

本帖最后由 cobat 于 2015-3-5 14:43 编辑

回复 5# syqh2010
在4楼改了
作者: syqh2010    时间: 2015-3-5 14:59

回复 6# cobat


谢谢你!我晚点试试。
再麻烦你一下,假如关键字不止一个,如同时含有"A BC"、"OP: 123"、":name: h32"
该如何改,谢谢你!!
作者: cobat    时间: 2015-3-5 15:09

本帖最后由 cobat 于 2015-3-5 15:16 编辑

回复 7# syqh2010


你有几个搜索字符串?
作者: syqh2010    时间: 2015-3-5 15:18

本帖最后由 syqh2010 于 2015-3-5 15:22 编辑

回复 8# cobat
3个够用了,谢谢,如果方便的话,请给一个多条件的,以后用的着。谢谢!




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