Powershell将CSV中的日期与今天的日期进行比较

Powershell将CSV中的日期与今天的日期进行比较,powershell,Powershell,我有一个csv文件,上一次约会的日期格式为2018年1月30日。 项目名称客户编号客户姓名日期上次约会CCP编号CCP姓氏CCP邮件 我想发送一封电子邮件,如果上次约会的日期是10个月前,那么他们有2个月的时间安排新的约会。 邮件应该转到ccp mail,如果为空,则转到项目名称。 我有一个脚本,看起来不错,但我不能得到日期格式 我到处都读过关于解析的书,但我不明白如果我不转换它,我会得到随机用户,而不是在过去两个月内,如果我尝试转换它,我会得到 使用“3”参数调用“ParseExact”时出现

我有一个csv文件,上一次约会的日期格式为2018年1月30日。 项目名称客户编号客户姓名日期上次约会CCP编号CCP姓氏CCP邮件

我想发送一封电子邮件,如果上次约会的日期是10个月前,那么他们有2个月的时间安排新的约会。 邮件应该转到ccp mail,如果为空,则转到项目名称。 我有一个脚本,看起来不错,但我不能得到日期格式

我到处都读过关于解析的书,但我不明白如果我不转换它,我会得到随机用户,而不是在过去两个月内,如果我尝试转换它,我会得到 使用“3”参数调用“ParseExact”时出现异常:“字符串未被识别为有效的日期时间。”


您不必将当前日期转换为字符串进行比较,也不必使用如此复杂的解析方法

$CheckDate = (Get-Date).AddMonths(-10)
$datelast = Get-Date ($user.'Date last appointment') #given the format is something like "30-01-2018"

然后,您只需将这两个变量与
$datelast-lt$CheckDate

进行比较,不必将当前日期转换为字符串进行比较,也不必使用如此复杂的解析方法

$CheckDate = (Get-Date).AddMonths(-10)
$datelast = Get-Date ($user.'Date last appointment') #given the format is something like "30-01-2018"

然后用
$datelast-lt$CheckDate

比较这两个变量,为什么这么复杂
$Convertdatelast=Get Date$datelast
执行此任务。@Paxz这取决于自己的日期格式。可能需要将$null替换为
System.Globalization.CultureInfo]::InvariantCulture
。但主要的问题是,第一行将回溯日期转换为一个字符串,该字符串与日期不可比。因此Jim_NL删除ToString部分。您确定CSV只包含日期(开头/结尾没有额外空格)吗
ParseExact
应该在这里工作,但请记住@LotPings编写的内容。为什么这么复杂
$Convertdatelast=Get Date$datelast
执行此任务。@Paxz这取决于自己的日期格式。可能需要将$null替换为
System.Globalization.CultureInfo]::InvariantCulture
。但主要的问题是,第一行将回溯日期转换为一个字符串,该字符串与日期不可比。因此Jim_NL删除ToString部分。您确定CSV只包含日期(开头/结尾没有额外空格)吗
ParseExact
应该在这里工作,但请记住@LotPings编写的内容。