1

这是一个文本文件txtfile.txt

line1
line2
add after this line
line4
etc
etc

我想创建一个批处理文件,它可以add after this line在用户输入信息后添加一行。保持add after this line原样。

例子:

enter info: asdf

文件变成

line1
line2
add after this line
asdf
line4
etc
etc

我认为基本过程是遍历文件复制它,当我找到该行时,添加该行,然后遍历其余部分。我想知道怎么做。

4

1 回答 1

4
@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

其中poison1.txt包含一行

"A line !of! ] many < & >var*ied %poison ^ char;ac(ters) | like "," a\nd+so=on"

并且 txtfile.txt 包含这一行。

  • poison1.txt从文件中读取该行到addafter
  • 对于 add-to-me 文件中的每一行
    • 给行编号以捕获空行
    • 删除数字和第一个冒号(添加FINDSTR
    • 逐字输出行
    • 如果该行与目标匹配,则输出额外的行

完毕!

于 2013-04-10T07:30:08.393 回答