2017-06-15 66 views
0

我想在我的PowerShell代碼中實現if語句。我無法添加其他過濾器,因爲我不知道該怎麼做。以下是我想要添加的內容。CSV Powershell如果語句篩選器

如何將以下內容添加到#Excluded Formula?如果行Type0在行中有任何等於「Local」的行,並且行Account0等於「ACCOUNTS-DOD」,「Account-dom」,「accounts」,並且如果行UAN等於「APA」,則「DOD 「,」Planstack「,那麼Excluded Row將顯示」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

+0

這個問題真的不清楚。你的數據是什麼樣的?發佈一個應該導致「真」的數據示例,以及應該導致「假」的數據。理想情況下,提供[最小,完整和可驗證示例](https://stackoverflow.com/help/mcve) – gms0ulman

+0

@ gms0ulman它看起來更好,有意義嗎? –

+0

我還不清楚,但根據我對問題和要求的理解發布了一個答案。請讓我知道它是否有效。 – gms0ulman

回答

0

仍然不完全清楚的全部細節。但很顯然你有興趣用多個標準創建一個複雜的if聲明。

假設想你想爲排除等於True是:

  • 鍵入0以下的一等於本地確切(而不是「本地」或「本地」或「somethingelseLocal」
  • Account0等於:「賬戶 - 國防部」,「賬戶-DOM」或「賬戶」
  • 唯一的帳戶名是下列之一:「APA」,「國防部」,「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" 
    } 

}