Как добавить строку в файл через CMD после указанной строки? - PullRequest
0 голосов
/ 16 января 2019

У меня есть такой файл:

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 голосов
/ 16 января 2019
@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-адрес (в котором, кажется, отсутствует октат).

Если во 2-м токене на текущей строке читается значение string, затем вставляется строка insert.

Когда запись в file.tmp завершена, файл заменяет file.txt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...