Powershell -包含VS-in
微软有一些重复的包含操作符,Powershell -包含VS-in,powershell,operators,Powershell,Operators,微软有一些重复的包含操作符,-containsvs-in和-notContainsvs-notIn。这些描述听起来似乎基本相同,-contains被描述为“当集合中包含参考值时返回真值”,而-in被描述为“当集合中包含测试值时返回真值”。在这种情况下,“参考值”和“测试值”之间到底有什么区别 而且,这些选项是否可以一直追溯到PS 2.0,或者-in和-notIn是后来引入的?考虑到许多变化,我真的希望微软能在他们的文档中包含这些信息,而不仅仅是假设每个人都使用当前版本。但我离题了。:) 这是为了
-contains
vs-in
和-notContains
vs-notIn
。这些描述听起来似乎基本相同,-contains
被描述为“当集合中包含参考值时返回真值”,而-in
被描述为“当集合中包含测试值时返回真值”。在这种情况下,“参考值”和“测试值”之间到底有什么区别
而且,这些选项是否可以一直追溯到PS 2.0,或者
-in
和-notIn
是后来引入的?考虑到许多变化,我真的希望微软能在他们的文档中包含这些信息,而不仅仅是假设每个人都使用当前版本。但我离题了。:) 这是为了便于使用,因为PowerShell的设计目的是尽可能舒适地在shell中键入(和读取)
对于-contains
,集合位于左侧:
(1, 2) -contains 1
1 -in (1, 2)
相反的情况是-in
运算符,其中集合位于右侧:
(1, 2) -contains 1
1 -in (1, 2)
这与否定版本也存在的原因完全相同,因为:
1 -notin (1, 2)
比这更容易键入:
-not (1 -in (1, 2))
这是为了便于使用,因为PowerShell的设计目的是尽可能舒适地在shell中键入(和读取) 对于
-contains
,集合位于左侧:
(1, 2) -contains 1
1 -in (1, 2)
相反的情况是-in
运算符,其中集合位于右侧:
(1, 2) -contains 1
1 -in (1, 2)
这与否定版本也存在的原因完全相同,因为:
1 -notin (1, 2)
比这更容易键入:
-not (1 -in (1, 2))
所有运算符都确定项集合中是否存在单个项。区别在于这些项位于操作符的哪一侧。对于-contains,左侧(LHS)是集合。在-in中,LHS是一个单独的项目,所以基本上只是可读性的改进。在文档中似乎还有一些可以改进的地方。:)谢谢你的澄清!我试着在一个旧的Win7/PS2.0虚拟机上测试这个,但出现了错误,所以似乎-in&-notIn后来也添加了。也很好地了解。典型的情况是一个变量包含一些值,并使用表达式创建比较值。该变量通常位于LHS上。我认为这可能只是惯例/可读性。如果您运行,
获取有关\u比较\u运算符的帮助
,您可以查看当前版本中的可用内容。PowerShell v3中添加了-in
和-notin
变体。你可以在这里看到很多有趣的事情。当我搜索时,我没有得到那个链接,我得到了一个有用信息少得多的链接。好的书签!所有运算符都确定项集合中是否存在单个项。区别在于这些项位于操作符的哪一侧。对于-contains,左侧(LHS)是集合。在-in中,LHS是一个单独的项目,所以基本上只是可读性的改进。在文档中似乎还有一些可以改进的地方。:)谢谢你的澄清!我试着在一个旧的Win7/PS2.0虚拟机上测试这个,但出现了错误,所以似乎-in&-notIn后来也添加了。也很好地了解。典型的情况是一个变量包含一些值,并使用表达式创建比较值。该变量通常位于LHS上。我认为这可能只是惯例/可读性。如果您运行,获取有关\u比较\u运算符的帮助
,您可以查看当前版本中的可用内容。PowerShell v3中添加了-in
和-notin
变体。你可以在这里看到很多有趣的事情。当我搜索时,我没有得到那个链接,我得到了一个有用信息少得多的链接。好的书签!