在cmd中的txtfile中间添加一行

在cmd中的txtfile中间添加一行,cmd,Cmd,这是一个文本文件txtfile.txt 我想创建一个批处理文件,该文件可以在添加一行之后添加一行,并在该行之后添加用户输入的信息。保持此行后面的add保持不变 例如: enter info: asdf 文件将变为 line1 line2 add after this line asdf line4 etc etc 我认为基本的过程是在文件中循环复制它,当我找到行时,添加行,然后循环其他行。我想知道怎么做 @ECHO OFF SETLOCAL SET /p info="enter info :

这是一个文本文件txtfile.txt

我想创建一个批处理文件,该文件可以在添加一行之后添加一行,并在该行之后添加用户输入的信息。保持此行后面的add保持不变

例如:

enter info: asdf
文件将变为

line1
line2
add after this line
asdf
line4
etc
etc
我认为基本的过程是在文件中循环复制它,当我找到行时,添加行,然后循环其他行。我想知道怎么做

@ECHO OFF
SETLOCAL
SET /p info="enter info : "
:: read addafter line
(
FOR /f "delims=" %%i IN (poison1.txt) DO (
SET addafter=%%i
FOR /f "delims=" %%n IN (' findstr /n "^" txtfile.txt') DO (
SET line=%%n
SETLOCAL ENABLEDELAYEDEXPANSION
SET line=!line:*:=!
ECHO(!line!
IF "!line!"=="!addafter!" ECHO(%info%
ENDLOCAL
)
)
)>newfile.txt

FC newfile.txt txtfile.txt

GOTO :eof
其中,毒物1.txt包含一行

"A line !of! ] many < & >var*ied %poison ^ char;ac(ters) | like "," a\nd+so=on"
而txtfile.txt包含这一行

从毒物1.txt文件中读取要添加的行 对于“添加到我”文件中的每一行 对行进行编号以捕捉空行 删除FINDSTR添加的数字和第一个冒号 逐字输出行 如果行与目标匹配,则输出额外的行 完成了

其中,毒物1.txt包含一行

"A line !of! ] many < & >var*ied %poison ^ char;ac(ters) | like "," a\nd+so=on"
而txtfile.txt包含这一行

从毒物1.txt文件中读取要添加的行 对于“添加到我”文件中的每一行 对行进行编号以捕捉空行 删除FINDSTR添加的数字和第一个冒号 逐字输出行 如果行与目标匹配,则输出额外的行
完成了

oh和AddPostHisline可能包含%、|等类似字符,这使得在批处理中更难提供AddPostHisline信息?好的-它可能包含有毒字符-但它是否包含在变量中,或者是从集合/p或文件提供的,或者是什么?它是从另一个批处理文件提供的。但它将与TXT文件一样,我想忘记它可能会成功,它会成功,那么我该怎么做?哦,添加后这行可能包含%、|等类似的字符,这使得在批处理中更加困难。如何提供添加后这行信息?好的-它可能包含有毒字符-但它是否包含在变量中,或者是从集合/p或文件提供的,或者是什么?它是从另一个批处理文件提供的。但它会像一个TXT文件一样,我想忘了它可能会制作,它会,那么我该怎么做?为什么你说它无聊?请使用搜索功能或谷歌来找到更多的答案。这不是一个真正的相互询问的问题。嗯,也许有必要知道答案的一部分才能找到好的结果。但是,尽管如此,Peter Wright还是给了你一个很好的解决方案:-如果信息多行存储在a.txt中,而我想将其复制到所述位置,我如何更改程序?只需将ECHO%info%更改为键入额外的行。txt为什么称之为无聊?请使用搜索功能或谷歌查找更多答案。这不是一个真正的相互询问的问题。嗯,也许有必要知道答案的一部分才能找到好的结果。但是,尽管如此,Peter Wright还是给了您一个很好的解决方案:-如果info多行存储在a.txt中,我想将其复制到所述位置,如何更改程序?只需将ECHO%info%更改为键入extra_lines.txt