批处理如何提取TXT文本里指定行内容?

2025-02-27 15:53:55
推荐回答(2个)
回答1:

只要一个命令就行了,a.txt为要找的文本,如果要找的关键词中含空格要整体找如下命令就行:

findstr /c:"你的关键词" a.txt>b.txt
如要找分别的几个关键词,把/c:去掉
如果要找的有字母需要完全对应大小写如果希望忽略大小写,要在上面基础上再加/i 如:
findstr /i /c:"你的关键词" a.txt>b.txt

补充:你这叫胡扯,什么叫“相邻行同学和住址后面的内容提取出来”,有的有冒号有的没,还有的“fff=yyyy pppp=uuuuu”既没同学也没住址,就像问着好玩,枉我还象傻瓜一样费神帮你答那一通。

回答2:

:: By LJ_SunTB 【BAT-GO】

@echo off>temp.txt
setlocal enabledelayedexpansion
set file=test.txt
for /f "tokens=*" %%a in ('type "!file!"') do (
echo.%%a|findstr "=">nul
if !errorlevel! equ 0 (echo>>temp.txt %%a) else (
set str=%%a
if "!str:~0,2!"=="同学" (set n=1&set name=!str:~3!)
if "!str:~0,2!"=="住址" (set n=2&set address=!str:~3!)
)
if !n! equ 2 (set n=0&echo>>temp.txt !name!=!address!)
)
start temp.txt