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

[文本处理] 批处理如何查找txt文本里包含指定字符串的行并输出第一个和最后一个匹配行

本帖最后由 pcl_test 于 2016-7-6 15:18 编辑

比如  
a:1
fga
a:2
a:3
afdsfa
a:4
我搜索a 只想输出 a:1 a:4
1

评分人数

搜索a,是匹配每行开头是a还是包含a

TOP

回复 2# pcl_test


    包含a就行 中间的都是随便打的

TOP

本帖最后由 pcl_test 于 2016-7-6 14:55 编辑
  1. @echo off
  2. for /f "delims=" %%a in ('more +9 "%~f0"^|find "a"') do (
  3.     if not defined #尾 set "#头=%%a"
  4.     set "#尾=%%a"
  5. )
  6. echo;%#头%
  7. echo;%#尾%
  8. pause&exit
  9. ::举个栗子
  10. a:1
  11. fga
  12. a:2
  13. a:3
  14. afdsfa
  15. a:4
复制代码

TOP

回复 4# pcl_test


    并不行啊= =

TOP

  1. @echo off
  2. findstr "a" "文本.txt">$1.tmp
  3. set /p #头=<$1.tmp
  4. sort /+65535 $1.tmp>$2.tmp
  5. set /p #尾=<$2.tmp
  6. echo;%#头%
  7. echo;%#尾%
  8. del /q /f $*.tmp
  9. pause
复制代码

TOP

回复 5# ltx1993

直接运行不行?你自己没改对怪谁

TOP

就比如txt里面是这些 我想搜索并输出calendar_time第一个和最后一个方便计算时间
  //[calendar_time:2016-07-04 01:10:01.023  system_uptime:22184244]
:Sending Touch (ACTION_DOWN): 01162.0,415.0)
:Sending Touch (ACTION_UP): 0:(1161.4484,419.31702)
    //[calendar_time:2016-07-04 01:10:11.544  system_uptime:22194765]
:Sending Touch (ACTION_DOWN): 0:(474.0,566.0)
:Sending Touch (ACTION_UP): 0:(467.8971,565.43835)
    //[calendar_time:2016-07-04 01:10:17.834  system_uptime:22201055]
:Sending Touch (ACTION_DOWN): 0:(450.0,64.0)
:Sending Touch (ACTION_UP): 0:(405.73944,166.1908)
    //[calendar_time:2016-07-04 01:10:26.761  system_uptime:22209982][url][/url]

TOP

回复 7# pcl_test


    可以找到最后一个= =

TOP

回复 9# ltx1993

把你原文件发网盘或打包发附件发出来

TOP

返回列表