Arrays Powershell在其中插入对象数组

Arrays Powershell在其中插入对象数组,arrays,powershell,csv,Arrays,Powershell,Csv,我正在尝试构建一个Powershell脚本,该脚本可以过滤CSV文件中的信息。但是我在使用数组作为参数时遇到了问题 当我导入CSV文件并手动键入时,此命令起作用: $data | where-object { ( $_.PackageAffected -eq "BslEqipWebPkg" -or $_.PackageAffected -eq "BslIDealAdminPkg" -or $_.Pac

我正在尝试构建一个Powershell脚本,该脚本可以过滤CSV文件中的信息。但是我在使用数组作为参数时遇到了问题

当我导入CSV文件并手动键入时,此命令起作用:

$data |
    where-object {
        (
            $_.PackageAffected -eq "BslEqipWebPkg" -or
            $_.PackageAffected -eq "BslIDealAdminPkg" -or
            $_.PackageAffected -eq "ALL"
        ) -and (
            $_.ENV -eq "PROD" -or $_.ENV -eq "ALL"
        )
    } |
    select-object -property 'major step id','minor step id','PackageAffected',ENV,detail |
    format-table -autosize  
我正在尝试使用数组构建
$\ PackageAffected
队列

以下是迄今为止的代码(不起作用):

在我放置的底部,
$packageList
会在屏幕上显示我希望看到的字符串,即:

$_.PackageAffected -eq "pkgName1" -or $_.PackageAffected -eq "pkgName2" -or $_.PackageAffected -eq "ALL"
但是,当我在运行表之后查看它时,表上没有针对
PackageAffected
的过滤器


我怀疑我已将该命令转换为字符串,当它运行时,Powershell无法将其识别为命令。

您需要计算表达式。这可以通过调用表达式来完成,例如

Invoke-Expression $packageList
在代码的上下文中,这将是:

$data | 
    where-object{(Invoke-Expression $packageList) -and ($_.ENV -eq $environment -or $_.ENV -eq "ALL")} |
    select-object -property 'major step id','minor step id','PackageAffected',ENV,detail |
    format-table -autosize
$data | 
    where-object{(Invoke-Expression $packageList) -and ($_.ENV -eq $environment -or $_.ENV -eq "ALL")} |
    select-object -property 'major step id','minor step id','PackageAffected',ENV,detail |
    format-table -autosize