将正在使用的NIC设置为批量变量

时间:2013-11-25 01:29:57

标签: windows batch-file netsh

所以,我必须设置静态ip的默认网关和WINS和dns以及很快不适用于Windows 7和XP的很多Windows系统。我制作了一个批处理脚本来帮助我使用netsh。问题不是每个网络接口名称都相同。在大多数情况下,它是“本地连接”,但有些是“以太网”或“无线连接”等等。所以这是我的脚本中的一行:

netsh interface ip set address“Local Area Connection”static 192.168。%Range%。%IP_Last%255.255.255.0 192.168。%Range%.1

%Range%之类的变量是在用户输入时设置的。无论如何,我问的是我怎么能把它带到我可以使用的地方:

netsh interface ip set address“%NIC_NAME%”static 192.168。%Range%。%IP_Last%255.255.255.0 192.168。%Range%.1

这样它就适用于任何系统。我只是想让它使用当前活动的网卡名称。非常感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

您可以使用wmi查找活动适配器,根据需要调整以下代码并选择名称而不是IP地址:

strComputer = "."
Set objWMIService = GetObject( _
"winmgmts:\\" & strComputer & "\root\cimv2")
Set IPConfigSet = objWMIService.ExecQuery _
("Select IPAddress from Win32_NetworkAdapterConfiguration" _
    & " where IPEnabled=TRUE")

For Each IPConfig in IPConfigSet
If Not IsNull(IPConfig.IPAddress) Then 
    For i=LBound(IPConfig.IPAddress) _
    to UBound(IPConfig.IPAddress)
    If Instr(1, IPConfig.IPAddress(i), "169.") = 0 Then 


        WScript.Echo IPConfig.IPAddress(i)
        ELSE
        END IF
    Next
End If
Next