2013-02-28 2 views
0

Много примеров здесь для замены подстроки или строки, но мне нужно заменить всю строку тем, что содержит некоторую строку с другой строкой с постоянным текстом. Например, у меня есть файл:Пакетный файл для замены строки

aaa=111 
bbb=222 
ccc=333 
aaa=444 

Мне нужно заменить «aaa =» на «aaa = 000». Выходной файл должен выглядеть следующим образом:

aaa=000 
bbb=222 
ccc=333 
aaa=000 

Все это должно быть сделано без сторонних инструментов, как SED, AWK и т.д.

ответ

1

Попробуйте использовать for цикл, чтобы разобрать каждую строку файла. Если "!line:~0,4!"=="aaa=", то эхо из вашей желаемой замены, иначе эхо линии нетронутой. Эти эхо-сигналы должны быть redirected в текстовый файл. Затем, когда вы закончите, переместите вновь созданный текстовый файл поверх файла, который вы прокручиваете.

Обычный метод для циклического перемещения текстового файла при сохранении пустых строк: for /f "tokens=1* delims=:" %%I in ('findstr /n "^" "filename.txt"') do (something with %%J) Команда findstr выводит каждую строку в файле, включая пустые строки, с номером строки в начале строки. %%J становится тем, что стоит после номера строки на каждой строке.

Этого должно быть достаточно, чтобы вы начали. Удачи!

Смежные вопросы