如何比较系统日期和存储在 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
我有一个 .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