我想返回默认网关,就像我为IPv4一样,但它返回空白。
for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do set ip=%%b set ip=%ip:~1% echo. echo IP Address is: %ip% echo.
这是我迄今为止,但它返回空白,我试图改变它,但它仍然返回一个空白的答案。
for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "Default"') do set ip=%%b set ip=%ip:~2% echo. echo The Gateway is: %ip% echo.
任何想法,我可以做到这一点。 并返回给定计算机的默认网关。
set "ip=" for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "Default"') do if not defined ip set ip=%%b
看一下ipconfig
的列表 – 很可能有多个default
行。 因此,您将从包含default
的last
一行获取数据
上面的构造返回包含default
的first
行。
这是一个WMIC脚本:
@echo off for /f "tokens=2,3 delims={,}" %%a in ('"WMIC NICConfig where IPEnabled="True" get DefaultIPGateway /value | find "I" "') do echo IPv4 %%~a IPV6 %%~b pause
for /f "tokens=1-5" %%a in ('route -4 print 0.*' ) do @if "%%e"=="" if "%%a"=="%%b" set "ip=%%c"
这将从ipv4路由表中提取默认网关。