如何比较sysdate和CSV文件中存储的日期

时间:2016-03-11 08:49:13

标签: powershell powershell-v2.0 powershell-ise

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

日期字符串如下所示:

 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!!"
} 

1 个答案:

答案 0 :(得分:1)

您说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