Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
请解释什么是%i*g";在这个PowerShell脚本中是什么意思_Powershell_Foreach_Foreach Object - Fatal编程技术网

请解释什么是%i*g";在这个PowerShell脚本中是什么意思

请解释什么是%i*g";在这个PowerShell脚本中是什么意思,powershell,foreach,foreach-object,Powershell,Foreach,Foreach Object,在PowerShell中工作时,我需要将CIDR表示法转换为IP起始地址和子网掩码表示法 执行谷歌搜索时,我发现其中包含许多执行此任务的模糊方法 我觉得特别有趣的一点是: $C = 13 [ipaddress](4.GB-(4GB-shr$C))|% i*g 我花了一些时间才发现-shr$C仅仅是PowerShell-shr操作符,在$C变量引用之前没有任何空格 然后我需要搜索以找到%是Foreach对象的别名 只需查询[ipaddress](4.GB-(4GB shr$C))的值我就收到了

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

执行谷歌搜索时,我发现其中包含许多执行此任务的模糊方法

我觉得特别有趣的一点是:

$C = 13
[ipaddress](4.GB-(4GB-shr$C))|% i*g 
我花了一些时间才发现
-shr$C
仅仅是PowerShell
-shr
操作符,在
$C
变量引用之前没有任何空格

然后我需要搜索以找到
%
Foreach对象的别名

只需查询
[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
,我们在执行乘法吗?

%
ForEach对象的别名,该对象具有接受属性名称的参数集

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

但该参数接受通配符,因此
|%i*g
意味着调用名称与该模式匹配的成员,在本例中为
i
paddresstoString
g

模式必须明确地解析,因此尝试执行
|%i*
,您将看到一个错误,该错误会告诉您该模式可以匹配的所有成员

这不是乘法的原因是它是一个字符串。因为它是命令的一个参数,所以字符串不一定需要被引用