gpt4 book ai didi

powershell - 请解释 "% i*g"在此 PowerShell 脚本中的含义

转载 作者:行者123 更新时间:2023-12-03 11:13:23 24 4
gpt4 key购买 nike

在使用 PowerShell 时,我需要将 CIDR 表示法转换为 IP 起始地址和子网掩码表示法。

执行 Google 搜索我找到了 this Reddit posting challenge其中包含许多执行此任务的晦涩方法。

我发现特别有趣的一个是:

$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 是什么意思?

ig 是什么,我们要执行乘法吗?

最佳答案

For more examples, I'm going to refer you to my post in Programming Puzzles .

%ForEach-Object 的别名,它有一个接受属性名称的参数集。

您已经在使用 %| 时看到了这一点IPAddressToString.

虽然参数接受通配符,因此 |% i*g 表示调用名称与该模式匹配的成员,在本例中为 i paddresstostrin g

模式必须明确解析,所以尝试执行 |% i* 并且您会看到一个错误,它有助于告诉您模式可以匹配的所有成员。

这不是乘法的原因是它是一个字符串。由于它是命令的参数,因此字符串不一定需要用引号引起来。

关于powershell - 请解释 "% i*g"在此 PowerShell 脚本中的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54221965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com