在 PowerShell 中工作时,我需要将 CIDR 表示法转换为 IP 起始地址和子网掩码表示法。
执行 Google 搜索时,我发现这个 Reddit 发布挑战包含许多执行此任务的晦涩方法。
我发现特别有趣的一个是:
$C = 13
[ipaddress](4.GB-(4GB-shr$C))|% i*g
我花了一段时间才发现这-shr$C
只是 PowerShell运算符,在变量引用-shr
之前没有任何空格。$C
然后我需要搜索以找到它%
的别名Foreach-Object
。
通过查询[ipaddress](4.GB-(4GB-shr$C))
我收到的值:
Address : 63743
AddressFamily : InterNetwork
ScopeId :
IsIPv6Multicast : False
IsIPv6LinkLocal : False
IsIPv6SiteLocal : False
IsIPv6Teredo : False
IsIPv4MappedToIPv6 : False
IPAddressToString : 255.248.0.0
这向我展示了 IPAddress 对象的属性。我需要的结果是IPAddressToString
我可以通过使用%| IPAddressToString
或以某种方式强制 PowerShell 将对象作为字符串发出来获得的属性。
因此,现在的问题是语法是什么% i*g
意思?
什么是i
和g
我们正在执行乘法?