CSV Powershell If语句过滤器

时间:2017-06-15 13:47:13

标签: powershell csv

我正在尝试在我的powershell代码中实现if语句。我在添加其他过滤器时遇到问题,因为我不知道该怎么做。以下是我要添加的内容。

如何将以下内容添加到#Excluded Formula?如果Type0行中的任何内容等于" Local"并且Account0行等于" ACCOUNTS - DOD"," Account-dom"," accounts"如果行UAN等于" APA"," DOD"," Planstack"那么排除的行将显示" True"如果没有,Ecluded应该等于False。

 Foreach ($row in $csv) {
 If ($row.Type0 -eq 'Local' -and $row.Account0 -eq 'ACCOUNTS - DODSCAN','')  { 
    $row."Excluded" = "True" 
    Write-Host $row."Excluded"
    } Else { 
    $row."Excluded" = "False" 
  }
 }

下面是我的csv列的图像,并显示我试图使排除列等于true或false,从if else语句开始。 Desired output

1 个答案:

答案 0 :(得分:0)

还没有完全清楚详细信息。但很明显,您有兴趣创建具有多个条件的复杂if语句。

假设您希望排除等于True

  • Type0完全等于本地(不是“Local”或“Local”或“somethingelseLocal”
  • Account0等于以下之一:“ACCOUNTS - DOD”,“Account-dom”或“accounts”
  • 唯一帐户名称是以下之一:“APA”,“DOD”,“Planstack”

然后您可以使用以下内容。我使用-and将3个要求串在一起,每个条件都有括号,以便您可以看到正在发生的事情。 -in运算符用于检查值是否为集合之一;该集合被创建为一个数组,例如@(1,2,3)

Foreach ($row in $csv) {

    If (($row.Type0 -eq 'Local') -and ($row.Account0 -in @('ACCOUNTS - DODSCAN','Account-dom','accounts')) -and ($row."Unique Account Name" -in @('APA'.'DOD','Planstack')))  { 
        $row."Excluded" = "True" 
        Write-Host $row."Excluded"
    } Else { 
        $row."Excluded" = "False" 
    }

}