如何用批处理在一个文本文档中根据条件插入一行字符

例如在1.txt文档中找到只要有一行里面包含G41或者G42的就在下面插入一行数值ppp如dhhsjdn2G41jppphddn3G41pppn4G42jhgppp行数很... 例如在1.txt文档中找到只要有一行里面包含G41或者G42的就在下面插入一行数值ppp

dhhsjd
n2G41j
ppp
hdd
n3G41
ppp
n4G42jhg
ppp
行数很多
展开
 我来答
qop_dob
2020-10-22 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:4024万
展开全部
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
/*&cls
@echo off
rem 在含有指定字符串/关键字的行下面插入一行内容
mode con lines=3000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set "txtfile=1.txt"
if not exist "%txtfile%" (echo;"%txtfile%" not found&pause&exit)
type "%txtfile%"|cscript -nologo -e:jscript "%~f0" "G41" "G42" "ppp"
echo;%#% +%$%%$%/%@% %z%
pause
exit
*/
while(!WSH.StdIn.AtEndOfStream){
var f=false;var s=WSH.StdIn.ReadLine();var len=WSH.Arguments.length;
for(var i=1;i<=len-1;i++){if(s.indexOf(WSH.Arguments(i-1))>-1){f=true;break;}};
WSH.echo(f?s+'\r\n'+WSH.Arguments(len-1):s);}
更多追问追答
追问
回去试试,先谢谢了
报错啊
sau357aD

2019-10-18 · TA获得超过461个赞
知道小有建树答主
回答量:446
采纳率:70%
帮助的人:33.7万
展开全部
首先,先以行为单位读一下文件
string[]h=File.ReadAllLines(@"d:/1.txt");
再筛选G42 G41
for(int n=0;n<h.Length;n++)
{
if(h[n].Contains("G41")||h[n].Contains("G42"))h[n]+="\r\nppp";
}
接下来就是输出
File.WriteAllLines(地址,h);
地址也是string @"d:/2.txt"
更多追问追答
追问
想覆盖原先文件,把地址改为一个就行了对吗
当前地址下的文件怎么改
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
职场达人涂涂
高粉答主

2019-10-18 · 每一个情感的背后都有一个故事
职场达人涂涂
采纳数:7942 获赞数:118929

向TA提问 私信TA
展开全部
要不我给您重新写一个合并的代码,这样可以在合并的时候就直接正常换行了。

不过我需要了解您合并的一些要求
追问
没有什么需要合并的啊,就是有许多这样的文档,需要人为添加一行数值,就是根据是否有G41G42来添加的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
慎扰龙雁39
2019-10-18 · TA获得超过659个赞
知道答主
回答量:1.2万
采纳率:28%
帮助的人:693万
展开全部
你看看能不能换个代码或者是拼一个往后你在先用一下能不能直接换出来?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式