在powershell中使用正则表达式切换,指定IP地址

时间:2015-10-07 13:48:55

标签: regex powershell switch-statement

我必须根据IP地址设置3个变量。

我发现我可以使用带-regex的开关,但我不知道如何检查地址是否在两个地址之间。

$ip = (get-WmiObject Win32_NetworkAdapterConfiguration|Where {$_.Ipaddress.length -gt 1}).ipaddress[0]
switch -regex ($ip) 
{ 
    "address 192.168.0.1-192.168.0.255" { $val = 3; } 
    "address 192.168.1.1-192.168.1.100" { $val = 1; } 
    "address 192.168.1.101-192.168.1.200" { $val = 4; } 
    "address 192.168.1.201-192.168.1.255" { $val = 5; } 
    default { exit }
}

1 个答案:

答案 0 :(得分:2)

我认为正则表达式不是处理此问题的最佳方法。我可能会做这样的事情

main.py

 import subprocess

for insert, (list) in enumerate(list, start=1):

 l = [list]
  subprocess.call(["python", "slave.py", '%s' % l])

如果您的IP块与示例中提供的IP块不同,则只需调整开关条件以匹配相应的八位字节