从batch file获取默认网关

我想返回默认网关,就像我为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行。 因此,您将从包含defaultlast一行获取数据

上面的构造返回包含defaultfirst行。

这是一个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路由表中提取默认网关。