批处理命令 显示a.txt中想要查找字符串所在行和下面一行内容并输出到btxt中。可以一次输入多个字符串 急

如题所述

不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
<# :
cls&echo off&mode con lines=5000
rem 从一个txt文本文件内查找出包含有指定关键字字符串的所在行及其下一行内容
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "[IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312'))|Invoke-Expression"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$keywords=@("查找关键词1","查找关键词2","查找关键词3");
$txtfile1="a.txt";
$txtfile2="b.txt";
if(-not (test-path -liter $txtfile1)){write-host ('"'+$txtfile1+'" 未找到');exit;};
$enc=[Text.Encoding]::GetEncoding('GB2312');
$text=[IO.File]::ReadAllLines($txtfile1,$enc);
for($i=0;$i -lt $text.length;$i++){
for($j=0;$j -lt $keywords.length;$j++){
if($text[$i].Contains($keywords[$j])){
if(($i+1) -lt $text.length){
$text[$i];$text[$i+1];
write-host '';
}
break;
}
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答