windows批处理命令从主机文件检测ip地址

windows批处理命令从主机文件检测ip地址,windows,batch-file,ip,localhost,host,Windows,Batch File,Ip,Localhost,Host,任何人都可以帮助我使用windows批处理命令检测没有#的任何语句,即主机文件(/system32/drivers/etc/hosts)中的未注释语句吗 例如:在该文件中指定的ip地址将不会有35;这对我有效: findstr "^[^#]*[0-9a-f][.:][0-9a-f]" c:\windows\system32\drivers\etc\hosts 这将查找未注释的行 find /v "#" < hosts find/v“#”

任何人都可以帮助我使用windows批处理命令检测没有#的任何语句,即主机文件(/system32/drivers/etc/hosts)中的未注释语句吗

例如:在该文件中指定的ip地址将不会有35;

这对我有效:

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

这将查找未注释的行

find /v "#" < hosts
find/v“#”
不完全确定这不会留下未经过滤的内容。但是

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

它会错吗?检测包含无效格式化ip地址解析的行(ej:ip地址,没有名称),但应删除所有已注释/未激活的行。

此代码仅显示第一列中没有#的行,希望这有助于:

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!)
)

对于IPV6地址,此操作失败错误地检测到“#1.10不执行任何操作”(哈希前有空格)@MCND good call。我想的只是第一位。我想我现在很好。Findstr正则表达式非常蹩脚,它在ipv6地址中的失败形式为::ffff:222.1.40。40@MCND你确定?它应该匹配你例子的第三个冒号,不是吗?也就是说
[^#]*
后面的部分应该匹配
f:2
,对吗?在某个地方没有检测到
10.0.0.0;#这是信息性的
@MCND是的,那一行有注释:我知道这一点,但问题只是要求非评论行。