如何将默认网关值提取到变量

como extrair o valor do Default Gateway para uma variável

晚安,使用这个命令很简单我可以获取 ip v4 并将其设置在一个变量中,它 returns 在屏幕上

for /f "tokens=14 skip=1 delims= " %a in ('"ipconfig | find /i "192.168""') do (set value="%a")

我想为默认网关做,但出现错误

for /f "tokens=1 delims= " %b in ('"ipconfig | find /i " Default Gateway""') do (set value="%b")

结论:
我想在代码中获得帮助以提取数据(IPv4 地址、默认网关)并​​放入变量

echo %a%
echo %b%

如果您可以使用 powershell,那么这就是您想要的。 [咧嘴一笑]

代码...

$NetIPInfo = Get-NetIPConfiguration |
    Where-Object {
        $_.IPv4Address.IPAddress -like '192.168*'
        } |
    ForEach-Object {
        [PSCustomObject]@{
            InterfaceAlias = $_.InterfaceAlias
            InterfaceDescription = $_.InterfaceDescription
            IPv4Address = $_.IPv4Address[0]
            IPv4DefaultGateway = $_.IPv4DefaultGateway[0].NextHop
            }
        }

$NetIPInfo |
    Format-List

为我输出...

InterfaceAlias       : vEthernet (ExternalVSwitch)
InterfaceDescription : Hyper-V Virtual Ethernet Adapter #3
IPv4Address          : 192.168.1.65
IPv4DefaultGateway   : 192.168.1.254

代码的作用...

  • 获取所有适配器的网络适配器配置信息
  • 过滤 IPv4 地址以 192.168
  • 开头的[s]
  • 构建一个 [PSCustomObject] 来保存所需的信息
  • 将其发送到 $NetIPInfo 集合
  • 在屏幕上显示上述集合中存储的值[s]

请注意 Format-List cmdlet [和所有其他 Format-* cmdlet] 用于最终输出到屏幕或纯文本文件。 不要将它们用于任何其他用途,因为它们会破坏对象并使它们除了显示之外无用。