Пакетная команда windows для определения IP-адреса из файла hosts

Может ли кто-нибудь, помогите мне обнаружить любые утверждения, которые не имеют #, т.е. некомментированные операторы из файла hosts (/system32/drivers/etc/hosts) с помощью команд Windows batch?

Например: IP-адрес, указанный в этом файле, который не будет иметь #

4 ответа

Это сработало для меня:

findstr "^[^#]*[0-9a-f][.:][0-9a-f]" c:\windows\system32\drivers\etc\hosts

Не совсем уверен, что это не оставляет что-то без фильтрации. Но

findstr /R /c:"^[^#]*[0-9a-f:.]" %systemroot%\system32\drivers\etc\hosts

Это будет неправильно? обнаружение строк, которые содержат недопустимые форматированные разрешения IP-адресов (например, IP-адрес и отсутствие имени), но должны удалить все закомментированные / не активные строки.

Это найдет некомментированные строки

find /v "#" < hosts

Этот код просто показывает строки, которые не имеют # в первом столбце, надеюсь, это поможет:

setlocal EnableDelayedExpansion
for /f "delims=¶ tokens=*" %%A in ('"type %SystemRoot%\System32\drivers\etc\hosts"') do (
   set var=%%A
   if NOT "!var:~0,1!" == "#" (echo !var!)
)
Другие вопросы по тегам