Задать вопрос
realt
@realt

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

Здравствуйте. Есть файл hosts. Из него мне нужно удалить 1, 2, 3, 4, 5, 6 строки, а потом вместо них записать строки со своим текстом. Помогите пожалуйста. Как это можно сделать?
  • Вопрос задан
  • 3690 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    SQA-I-007 Сопровождение автотестов и написание отчетов
    1 неделя
    Далее
  • ProductStar
    DevOps инструменты: сформируйте навык автоматизации инфраструктуры
    1 месяц
    Далее
  • ProductStar
    Основы DevOps
    2 месяца
    Далее
Решения вопроса 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.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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