Назад | Перейти на главную страницу

командный файл, удалить строку по номеру

у меня есть это: set myvar = ^J | FIND /N /I "texttolookfor" %WINDIR%\system32\drivers\etc\hosts Теперь у меня есть строки, в которых он оштрафовал текст

как я могу удалить эту строку из файла?

Я знаю, что могу перебежать линию с FOR но часть удаления все еще сложна для меня

я читал о findstr, это должно быть лучше, но также не могу найти ничего, что можно было бы удалить

теперь я читаю о

FIND /V "texttolookfor" %WINDIR%\system32\drivers\etc\hosts > newfile

он сохраняет файл в новый без найденной строки ... но добавляет

"------------------% WINDIR% \ system32 \ drivers \ etc \ hosts"

в начале, но когда я пытаюсь

FIND /V "texttolookfor" %WINDIR%\system32\drivers\etc\hosts > %WINDIR%\system32\drivers\etc\hosts

это не работает...

Ваша команда:

FIND /V "texttolookfor" %WINDIR%\system32\drivers\etc\hosts > newfile

добавляет ------------------%WINDIR%\system32\drivers\etc\hosts в начало файла, поскольку это часть вывода по умолчанию FIND. Попробуйте без перенаправления и посмотрите.

FIND /V "texttolookfor" %WINDIR%\system32\drivers\etc\hosts

---------- C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
...

TYPE может использоваться для перехвата файла, перенаправления его вывода через FIND, и он не должен отображать файл / путь:

TYPE %WINDIR%\system32\drivers\etc\hosts | FIND /V "texttolookfor"

Это, конечно, также может быть перенаправлено в новый файл:

TYPE %WINDIR%\system32\drivers\etc\hosts | FIND /V "texttolookfor" > newfile

Попробуйте Win32 порт Grep

Предполагая, что вы хотите очистить все строки, содержащие xyz следующая команда сделает то, что вам нужно.

grep -v xyz inputfile.txt > outputfile.txt

Если вы хотите сопоставить всю строку, это также можно сделать с помощью регулярного выражения. Как MDMarra уже сказал в комментариях, объясните, пожалуйста, более широкую картину того, что вы пытаетесь сделать.

p.s. Переносить вывод обратно в исходный файл, вероятно, не очень хорошо, особенно при экспериментировании, и тем более, когда это системный файл.