如何在指定的字符串后通过CMD向文件添加行?

时间:2019-01-16 09:35:17

标签: string windows file batch-file cmd

我有一个这样的文件:

192.168.123 hostname1
192.168.126 hostname2
192.168.125 hostname3
192.168.124 hostname4

我想通过CMD ex搜索字符串。 hostname2并在其后添加一行,使其看起来像这样:

192.168.123 hostname1
192.168.126 hostname2
192.168.128 hostname5
192.168.125 hostname3
192.168.124 hostname4

这一切都必须在原始文件中完成,而不要移到另一个文件中

1 个答案:

答案 0 :(得分:0)

@echo off
setlocal

set "string=hostname2"
set "insert=192.168.128 hostname5"

for /f "tokens=1-2 delims= " %%A in (file.txt) do (
    echo %%A %%B
    if /i "%%~B" == "%find%" echo %insert%
) >> file.tmp

move /y file.tmp file.txt

变量string是要查找的字符串。 变量insert是新行 在与string的值匹配的行之后插入。

for循环将每个读取行按空格分隔为2个标记。 第一个令牌将是IP地址(似乎缺少八位字节)。

如果在正在读取的当前行的第二个令牌中找到string的值, 然后插入insert行。

写入file.tmp后,文件将替换file.txt