批处理命令 显示所要查找字符串所在行和下面一行内容并输出到一个文件中。急在线等
假设查找内容为“问问”,查找文件为“a.txt”,输出文件为“b.txt”!在线等,各位大牛们。麻烦了。...
假设查找内容为“问问”,查找文件为“a.txt”,输出文件为“b.txt”!
在线等,各位大牛们。 麻烦了。 展开
在线等,各位大牛们。 麻烦了。 展开
4个回答
展开全部
@Echo Off&Setlocal Enabledelayedexpansion
For /f "tokens=1* delims=:" %%i in ('Type a.txt^|Findstr /n "问问"') do (
Set n=&Set /a n=%%i+1
Echo %%j>>b.txt
For /f "tokens=1* delims=:" %%a in ('Type a.txt^|Findstr /n "."') do (If %%a==!n! Echo %%b>>b.txt)
)
Pause
可以处理a.txt中包含多个 搜索结果.例如 搜索结果包含多个"问问".
展开全部
@echo off
cd /d %~dp0
rem 设置文件
set f=abc.txt
rem 设置搜索内容
set t=问问
rem 设置输出文件
set n=NewFile.txt
for /f "tokens=1,2 delims=:" %%a in ('findstr /n "%t%" "%f%"') do (
set h=%%a
pause
echo %%b>"%n%"
goto next
)
:next
for /f "skip=%h% delims=" %%c in ('type "%f%"') do (
echo %%c>>"%n%"
pause
exit
)
追问
你这个不行,就执行了一遍。取出了一次。我一个文件里好多指定字符串
追答
呃!你又没说明,这个你参考罐头梨子的代码吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@echo off
setlocal enabledelayedexpansion
for /f "delims=: tokens=1,2" %%i in ('type a.txt ^| findstr/n "问问"') do (
set /a a=%%i+1
echo %%j>>b.txt
)
for /f "delims=: tokens=1,2" %%a in ('type a.txt ^| findstr/n .*') do (
if %%a==!a! echo %%b>>b.txt
)
setlocal enabledelayedexpansion
for /f "delims=: tokens=1,2" %%i in ('type a.txt ^| findstr/n "问问"') do (
set /a a=%%i+1
echo %%j>>b.txt
)
for /f "delims=: tokens=1,2" %%a in ('type a.txt ^| findstr/n .*') do (
if %%a==!a! echo %%b>>b.txt
)
追答
@echo off
setlocal enabledelayedexpansion
for /f "eol=* delims=: tokens=1,2*" %%i in ('type a.txt ^| findstr/n "统计信息"') do (
echo %%i>>text.txt
)
set a=0
for /f "tokens=*" %%a in (text.txt) do (
set /a a=%%a+1
for /f "eol=* delims=: tokens=1,2*" %%q in ('type a.txt ^| findstr/n "统计信息"') do (
if %%q==%%a (echo %%w>>b.txt)
if %%q==!a! (echo %%w>>b.txt)
)
del text.txt
打印 ”统计信息“ 那一行和它下面一行。支持N行(没测试,你测试一下)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
grep -A 1 "问问" a.txt >> b.txt
追问
这是Shell好吗?我要的批处理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询