首页 > 解决方案 > 如果不存在,则获取以太网的 IP 地址,然后使用批处理脚本获取 WIFI 适配器的 IP 地址

问题描述

我有一个批处理脚本,它获取机器的 IP 地址,如果不存在,则检索 WIFI 适配器的 IP 地址。它适用于以太网适配器,但是当它找到 WIFI 适配器时,它适用于某些系统但在其他系统上失败,因为我发现不同系统上的 WIFI 适配器的名称不同。我对批处理脚本了解不多。这是我尝试过的脚本。

@echo off
setlocal enabledelayedexpansion
::just a sample adapter here:
set "adapter=Ethernet adapter Ethernet"
set adapterfound=false
echo Network Connection Test
echo %new%
for /f "usebackq tokens=1-2 delims=:" %%f in (`ipconfig`) do (
    set "item=%%f"
    if /i "!item!"=="!adapter!" (
        echo found
        set adapterfound=true
    ) else if not "!item!"=="!item:IPv4 Address=!" if "!adapterfound!"=="true" (
        set _IPaddr=%%g
        echo Your IP Address is: %%g
        goto :break
        rem set adapterfound=false
        rem echo not found
    )
    rem echo adapterfound
)

:break
if "!adapterfound!"=="false"  (

    :: sometimes I get another name like "adapter=Wireless LAN adapter Wi-Fi 2"

    set "adapter=Wireless LAN adapter Wireless Network Connection"
    set adapterfound=false
    echo Network Connection Test
    for /f "usebackq tokens=1-2 delims=:" %%f in (`ipconfig`) do (
        set "item=%%f"
        if /i "!item!"=="!adapter!" (
            echo found
            set adapterfound=true
        ) else if not "!item!"=="!item:IPv4 Address=!" if "!adapterfound!"=="true" (
            set _IPaddr=%%g
            echo Your IP Address of WIFI is: %%g
            set adapterfound=false
        )
    )
)
for /f "tokens=* delims= " %%a in ("%_IPaddr%") do set _IPaddr=%%a
echo %_IPaddr%

标签: batch-file

解决方案


请试一试:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=2,3 delims={,}" %%a in ('"wmic nicconfig where IPEnabled="True" get DefaultIPGateway /value | find "I" "') do set gate_test=%%~a
set gate_test=!gate_test: =!
for /f "tokens=1-3 delims=^." %%i in ("!gate_test!") do set range=%%i.%%j.%%k
for /f "tokens=1,2 delims=:" %%l in ('ipconfig ^| findstr IPv4') do (
   set ip=%%m
   set ip=!ip: =!
for /f "tokens=1-3 delims=^." %%n in ("!ip!") do set iprange=%%n.%%o.%%p
if !iprange! == !range! set ipaddress=!ip!
)
)
echo My IP Address is !ipaddress!

推荐阅读