у меня есть это: 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. Переносить вывод обратно в исходный файл, вероятно, не очень хорошо, особенно при экспериментировании, и тем более, когда это системный файл.