不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
----------------------------------------------------
<# :
cls&echo off&cd /d "%~dp0"
rem 将当前目录下nc文件里包含有指定关键字字符的行替换成其他多行内容
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "mainfolder=%cd%"
powershell -NoProfile -ExecutionPolicy bypass "[IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312'))|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$path=get-item -liter $env:mainfolder;
$enc=[Text.Encoding]::GetEncoding('GB2312');
$files=@(dir -liter $path.FullName -recurse|?{('.nc' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
for($i=0;$i -lt $files.length;$i++){
write-host ($files[$i].FullName.Substring($path.FullName.length));
$f=$false;$text=[IO.File]::ReadAllLines($files[$i].FullName, $enc);
for($j=0;$j -lt $text.count;$j++){
if($text[$j].Contains("[平底]JD-2.00")){
$newline=@("([平底]JD-2.00)","T3 M6","G43H3","M03S18000","M07");
$f=$true;$text[$j]=$newline -join "`r`n";
}
}
if($f){[IO.File]::WriteAllLines($files[$i].FullName, $text, $enc);}
}
温馨提示:答案为网友推荐,仅供参考