powershell - -in 运算符在 2.0 版本中不起作用?

标签 powershell powershell-2.0

我有以下代码行可在 powershell 3.0 中运行

$Type = "DD"
if ($Type -in "AA","BB","CC") {Write-Host  "Type = $Type" -ForegroundColor Yellow }

但是使用 PowerShell 2.0 运行时出现错误

- : You must provide a value expression on the right-hand side of the '-' operator.
    + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpectedValueExpression

为什么会这样呢?我该如何修复它?

最佳答案

-in 在 2.0 中不存在。您需要使用-contains相反(以及相应的箔 -notin/-notcontains )。功能相同,但直观性稍差一些。这就是引入 -in 的原因之一。

if ("AA","BB","CC" -contains $Type){"Do Stuff"}

虽然链接的文档适用于 3.0 及更高版本,但我不认为与 -contains 相关的部分有任何不同。

关于powershell - -in 运算符在 2.0 版本中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32632876/

相关文章:

android - 通过adb从Powershell脚本向Android手机发送AT命令

active-directory - 导入模块 : The specified module 'activedirectory' was not loaded because no valid module file was found in any module directory

powershell - 启动过程出现错误

powershell - 通过循环将多个变量读入数组

powershell - PowerShell:使用%登录名批量复制文件

azure - 如何通过 powershell 脚本更新智能检测设置警报

powershell - '$?' 命令在 Powershell 中的作用/含义是什么?

powershell - PowerShell 2 CTP3 ISE 的自定义读取主机对话框

powershell - Powershell递归文件名读取并重命名

通过过滤多个条件重命名 Powershell 文件