Board logo

标题: [文本处理] [已解决]批处理在文本文件查找关键字,当在某行找到关键字接着当前行找另一个关键字 [打印本页]

作者: svke    时间: 2024-7-21 22:33     标题: [已解决]批处理在文本文件查找关键字,当在某行找到关键字接着当前行找另一个关键字

批处理查找文本文件d:\test\test.txt里的某一行含有2D Graphics这个字符串,并接着在当前行查找PASS字符串,找到就显示PASS找不到就显示FAIL
这个批处理写了一晚上就是写不通,for /f "tokens=* delims=",及findstr都用上了,结果就是不准,哎小弟水平有限,哪位大佬帮我写一个不胜感激

下面是文本文件大概的信息
CPU   3        183 Billion     FAIL   0        No errors
GPGPU   1        2.390 Trillion  PASS   0        No errors
Memory (RAM)   1        5.028 Billion   PASS   0        No errors
2D Graphics   40       11043           PASS   0        No errors
3D Graphics   0        4948            PASS   0        No errors
Video Playback   2        31              PASS   0        No errors
Disk (C   2        5.209 Billion   PASS   0        No errors
Disk (D:)   2        5.285 Billion   FAIL   0        No errors
作者: newswan    时间: 2024-7-21 22:49

  1. | find "2D" | find "pass"
复制代码

作者: svke    时间: 2024-7-21 23:04

回复 2# newswan
大佬我是这样写的还是不准是哪里的问题
@echo off
set "file=d:\test\test.txt"

for /f "delims=" %%a in ('type "%file%" ^| findstr /C:"2D Graphics"') do (
    echo %%a | findstr /C:"PASS" > nul
    if not errorlevel 1 (
        echo PASS && pause
    ) else (
        echo FAIL && pause
    )
)
作者: svke    时间: 2024-7-21 23:12

@echo off
set "file=d:\test\test.txt"

for /f "delims=" %%a in ('type "%file%" ^| findstr /C:"2D Graphics"') do (
    echo %%a | findstr /C:"^PASS$" /C:" PASS " > nul
    if not errorlevel 1 (
        echo %%a
        echo PASS
        pause
    ) else (
        echo %%a
        echo FAIL
        pause
    )
)
重定向的问题,总算好用了,谢谢newswan大佬
作者: newswan    时间: 2024-7-22 20:43

如果要 正则表达式 , 放弃 findstr ,用 sed grep awk ,
  1. grep -E "2D Graphics .+ PASS " data.txt
复制代码

作者: aloha20200628    时间: 2024-7-22 22:06

回复 1# svke

楼主的问题可用以下一行流了结...
  1. findstr /irc:"2D Graphics.*pass" "d:\test\test.txt">nul&&(echo,Pass)||(echo,Fail)
复制代码

作者: svke    时间: 2024-7-23 15:55

回复 6# aloha20200628
都是大佬等一下去测试一下谢谢大佬
作者: svke    时间: 2024-7-23 15:55

回复 5# newswan
都是大佬等一下去测试一下谢谢大佬
作者: svke    时间: 2024-7-23 15:57

回复 5# newswan
弱弱的问一句,window下有grep吗?linux下倒是有用过
作者: newswan    时间: 2024-7-23 16:26

回复  newswan
弱弱的问一句,window下有grep吗?linux下倒是有用过
svke 发表于 2024-7-23 15:57



有 win 版,论坛里有,也有比较完整的,msys




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