从批处理文件中获取默认网关

时间:2014-03-13 01:08:42

标签: windows 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.

我有什么想法可以做到这一点。并返回给定计算机的默认网关。

4 个答案:

答案 0 :(得分:4)

这是一个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

答案 1 :(得分:3)

set "ip="
for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "Default"') do if not defined ip set ip=%%b

查看ipconfig列表 - 可能有多条default行。因此,您将从包含last

default行获取数据

上述构造返回包含first的{​​{1}}行。

答案 2 :(得分:1)

for /f "tokens=1-5" %%a in ('route -4 print 0.*'
) do @if "%%e"=="" if "%%a"=="%%b" set "ip=%%c"

这将从ipv4路由表中提取默认网关。

答案 3 :(得分:0)

这对我有用。

第一个列出的网关。

@echo off
set "ip="
for /f "tokens=2,3 delims={,}" %%a in ('"WMIC NICConfig where IPEnabled="True" get DefaultIPGateway /value | find "I" "') do if not defined ip set ip=%%~a

echo  IP Mobile Address is: %ip%
pause