我有一个.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!!"
}
答案 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