如何比较系统日期和存储在 CSV 文件中的日期

How to compare the sysdate and the date stored in CSV file

我有一个 .csv 文件,我在其中创建了一个以随机方式给出日期的列。我想要一个脚本,我想在其中比较今天的日期,即 sysdate 与 CSV 文件中存在的日期。 如果今天的日期与 CSV 中的日期匹配,那么它将 Write-Output "true" else "false".

日期字符串如下所示:

 3/10/2016
 4/12/2016
 3/09/2016

我试过这个:

$CheckDate = (Get-Date).Date
Import-Csv 'C:\Downloads\date.csv' | Select-Object -Property *, @{n='Date';e={ [DateTime]::ParseExact($_.'Date', 'MM-dd-yyyy') }} -Exclude 'Date' | ForEach-Object { 
    if ($_.'Date' -eq $CheckDate) { 
        write-Output "$true" 
    } else { 
        Write-output "$false" 
    } 
}

还有这个:

$data = Get-item "C:\Downloads\date.csv" 
$a = Get-Date -Format d 
if($a = $data) {
    write-output "Its working!!"
} else {
    write-output "Its not working!!"
} 

你说 csv 文件中的日期看起来像:

 3/10/2016
 4/12/2016
 3/09/2016

但在您的示例中,您尝试使用格式字符串 MM-dd-yyyy 解析日期 - 即。期望月份以前导零和 - 作为分隔符。

您描述的示例的正确日期格式为 %M/dd/yyyy:

PS C:\> [datetime]::ParseExact('3/10/2016','%M/dd/yyyy',$null)

Thursday, March 10, 2016 12:00:00 AM