realt
@realt

Как удалить строки через bat?

Здравствуйте. Есть файл hosts. Из него мне нужно удалить 1, 2, 3, 4, 5, 6 строки, а потом вместо них записать строки со своим текстом. Помогите пожалуйста. Как это можно сделать?
  • Вопрос задан
  • 3453 просмотра
Решения вопроса 1
@res2001
Developer, ex-admin
Вообще лучше удалять не 1,2,3 ... строки, а с помощью фильтра типа как в sed постом выше, только используя стандартную утилиту findstr. Если приведете пример содержимого строк, которые надо удалить, помогу написать фильтр.
Если все же настаиваете на 1,2,3, .... то организовываете цикл, где читаете файл построчно, считая строки и начинаете писать с нужной строки:
@echo off
setlocal enabledelayedexpansion
set "c=0"
del /f/q hosts1
for /f "tokens=* delims=" %%a in (hosts) do (
    set /a "c+=1"
    if !c! gtr 7 >>hosts1 echo.%%a
)
del /f/q host
copy add.txt+hosts1 hosts
del /f/q host1

Тренируйтесь не в системном каталоге. Скрипт удаляет host. В финальном скрипте прописывайте полные пути для файлов. В файле add.txt содержатся строки, которые надо добавить в начале hosts.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы