通过netsh循环访问特定接口并将IP地址存储到变量

时间:2015-12-17 18:53:04

标签: batch-file

我正在尝试将Loopback接口的IP地址分配给变量但由于某种原因我什么也得不到。 如果我在命令shell中输入它,这是有效的:

C:\temp>netsh interface ip show config name="Loopback" | find  "IP Address"
IP Address:                           192.168.255.10

但是当我循环时,输出是空的......

set _netsh_cmd=netsh interface ip show config name="Loopback"
FOR /f "tokens=*" %%G IN ('%_netsh_cmd% ^| find "IP Address"') DO echo [%%G]

2 个答案:

答案 0 :(得分:1)

发现错误,您必须打开delayedExpansion,并使_netsh_cmd包围!而不是%。这应该是正确的:

setlocal enableDelayedExpansion
set _netsh_cmd=netsh interface ip show config name="Loopback"
FOR /f "tokens=*" %%G IN ('!_netsh_cmd! ^| find "IP Address:"') DO echo [%%G]

答案 1 :(得分:1)

在没有延迟扩张的情况下工作正常。

@echo off
set _netsh_cmd=netsh interface ip show config "Loopback"
FOR /f "delims=" %%G IN ('%_netsh_cmd% ^|find "IP Address"') DO echo [%%G]