批处理修改文本文档指定行的内容,在指定行后面添加一行?

bat批处理修改文本文档指定行的内容,在指定行后面添加一行?

工作目录:(d:\tt)操作文件:所有.tog文件1、将其第2行内容改为mxt7,2、在其第3行后添加一行qxt053、在其倒数第2行后添加一行qxt09示例(结果不含括号)修改前:sjjddnjekndnjsjsjkiwbsicbnsnshhebdbjebdkkbdbbdbjnednjsjs修改后:sjjddn【mxt7】jsjsj【qxt05】kiwbsicbnsnshhebdbjebdkkbdbbdb【qxt09】jnednjsjs

不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI
<# :
cls&echo off
rem 在一个指定目录里的多个指定扩展名/后缀名文本文件内的多个指定行下面添加/插入不同内容
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312')))) -Args '%~f0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$path="d:\tt";
if(-not (test-path -liter $path)){write-host ('"'+$path+'" 未找到');exit;};
$enc=[Text.Encoding]::GetEncoding('GB2312');
$files=@(dir -liter $path -recurse|?{('.tog' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
if($files.length -ge 1){
write-host $files[0].FullName;
$text=[IO.File]::ReadAllLines($files[0].FullName,$enc);
try{
$text[2-1]="mxt7";
$text[3-1]=$text[3-1]+"`r`n"+"qxt05";
$text[$text.Count-2]=$text[$text.Count-2]+"`r`n"+"qxt09";
}catch{}
[IO.File]::WriteAllLines($files[0].FullName,$text,$enc);
}追问

你好,尝试了你的代码,无法运行

追答

按运行后窗口标题栏中的提示联系我

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-08-31
是得可以指定路径的追问

是的。是指定目录下的所有的.tog文件

第2个回答  2021-08-31
那就制定一行 的
相似回答