在cmd中的一行后添加行

时间:2013-04-14 08:41:02

标签: cmd

这里有一个文件txt.txt

line1
line2
add after this line  blah blah blah
line4
etc
etc

我想在此行之后添加一行后但我不知道在add after this line

后的同一行中出现了什么

我想知道的是我必须在[this]代码中做出的所有更改

@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!" TYPE your_multiline_addition.txt
ENDLOCAL
)
)
)>newfile.txt

FC newfile.txt txtfile.txt

GOTO :eof

非常感谢任何帮助。

不知道如何在字符串操作中使用通配符

1 个答案:

答案 0 :(得分:0)

你知道你的行包含什么 - 它在!line!中 你知道你想要找到什么 - 它在!addafter!

所以 - 要查找!addafter!是否在!line!中,您需要做的就是

echo !line!|findstr "!addafter!" >nul
if errorlevel 1 (echo not found) else (echo found)

请阅读

所示的文档
findstr /?

找出你需要找到的“开始”或“结束”......,无论你是否需要不区分大小写以及是否需要使用search-for-me-string作为文字或者“正则表达式”(注意默认情况下为REGULAR EXPRESSION)以及是否要* C * ombine“带空格的字符串”或搜索“集合中的任何单词”而不使用* C *将它们组合在一起作为单个字符串。