目标:从 CSV 导入日期。如果日期已经过去或者是今天,则显示它。
$dayInOctober = (Get-date).AddDays(90)
$csvname = "myCSV.csv"
$csvFile = Import-Csv C:\Users\a341162\Desktop\$csvname
foreach($row in $csvFile){
if ($row.Date -le $dayInOctober){
Write-Host $row.Date
}
}
但只有当我使用 if 语句 -gt
时才有效。难道不应该是我上面的方式吗?
myCSV.csv:
"Name","Date"
"admryantest2","7/20/2018"
"admryantest3","7/20/2018"
"admryantest3","7/23/2018"
"admryantest3","7/23/2018"
最佳答案
导入 CSV 时,$row.Date 是一个字符串。如果您想将日期作为日期进行比较,那么您需要将其转换为日期:
$dayInOctober = (Get-date).AddDays(90)
$csvname = "myCSV.csv"
$csvFile = Import-Csv C:\Users\a341162\Desktop\$csvname
foreach($row in $csvFile){
if ((Get-Date $row.Date) -le $dayInOctober){
Write-Host $row.Date
}
}
然后您可以按预期使用 -le 。
关于PowerShell 日期比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51250489/