在 Windows 中的 OpenVPN 环境中查找默认网关

在 Windows 中的 OpenVPN 环境中查找默认网关

我需要在 openvpn 场景中找到默认网关,其中路由输出如下所示:

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0       10.49.73.1      10.49.73.24     10
          0.0.0.0        128.0.0.0         10.8.0.1         10.8.0.2     30

所以我在 Google 上搜索了一下,找到了这个脚本这里

@For /f "tokens=3" %%* in (
   'route.exe print ^|findstr "\<0.0.0.0\>"'
   ) Do @Set "DefaultGateway=%%*"

echo %DefaultGateway%

这可行,但会匹配路线输出中的两行。

但我需要找到这一行:

0.0.0.0          0.0.0.0       10.49.73.1      10.49.73.24     10

因此我尝试像这样修改 findstr 参数:

findstr "\<0.0.0.0\>.\<0.0.0.0\>"

期望“。”将匹配列之间的制表符。但事实并非如此。它仍将 DefaultGateway 设置为 10.8.0.1

我找不到线索MS 文档也行。也许有人知道正确的表达方式?非常感谢。

答案1

尝试这个:

For /f "tokens=3" %%* in (
   'route print ^|findstr "\<0.0.0.0.*0.0.0.0\>"'
   ) Do @Set "DefaultGateway=%%*"

echo %DefaultGateway%

您还可以查看findstr /?更多信息。

相关内容