我有一個看起來像這樣的 csv 檔案
Name SMTPAddress ExistHold
John jona@gmail.com True
Hanah Hannah@gmail.com True
David david@gmail.com False
我只是想知道如何遍歷串列以查看哪些用戶具有 ExistHold = True 并獲取所有這些用戶的 SMTP 地址,以便我可以僅對這些用戶執行下一個程序。
$Global:downloadFile = "C:\AuditLogSearch\Downloaded-Audit-Log-Records.csv"
function FunctionName {
$importDownload = Import-Csv -Path $Global:downloadFile
$importDownload | ForEach-Object{
}
}
我有點堅持如何回圈,所以如果我能得到任何幫助或建議,我將不勝感激。
uj5u.com熱心網友回復:
您可以簡單地使用 Where-Object 子句來獲取這些用戶并且不需要回圈:
# use a Where-Object clause to filter only items where field 'ExistHold' is set to 'True'
$importDownload = Import-Csv -Path $Global:downloadFile | Where-Object { $_.ExistHold -eq 'True' }
# you now have an array of objects and to get just the SMTPAddress simply do
$importDownload.SMTPAddress
Import-Csv默認情況下,需要一個逗號作為分隔符。如果您的檔案使用其他東西來分隔欄位,例如 TAB,則需要使用引數指定-Delimiter "`t"
uj5u.com熱心網友回復:
我個人會使用 ForEach 而不是 ForEach 物件,有時它更容易使用。如果您使用正確的分隔符匯入 CSV,您應該能夠像這樣過濾它
$Global:downloadFile = "C:\AuditLogSearch\Downloaded-Audit-Log-Records.csv"
function FunctionName {
$importDownload = Import-Csv -Path $Global:downloadFile
ForEach ($import in $importDownload) {
If ($import.ExistHold) {
Write-Output "Its true :)"
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/423101.html
標籤:
上一篇:如何同時從串列中迭代和洗掉元素?
