繁体   English   中英

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

[英]Powershell Compare date from CSV with todays date

我有一个csv文件,其日期为最后一次约会的日期格式为30-01-2018。 项目名称客户编号客户名称上次约会的日期CCP nr CCP姓氏CCP邮件

如果上次约会的日期是10个月前,我想发送电子邮件,因此他们有2个月的时间来安排新约会。 该邮件应转到ccp邮件,如果多数民众赞成在项目名称为空。 我有一个看起来不错的脚本,但我无法获取日期日期格式。

我到处都读到有关解析的信息,但是如果我不进行转换,我将无法获得解析,但是在过去的两个月内,我不会获得随机用户;如果我尝试进行解析,则会得到异常,调用“ ParseExact”和“ 3”参数: “字符串未被识别为有效的DateTime。”

$CheckDate = (Get-Date).Addmonths(-10).tostring("dd-MM-yyyy")
$data = Import-Csv -Path '.\CCPt.csv' -Delimiter ";" 
foreach ($User in $data)  {

$Project = $user.'Project name'
$clientname = $user.'Client name'
$datelast = $user.'Date last appointment'
$mail = $user.'CCP mail'


$from = "mail@domain.com" 
$smtp = "smtp.domain.com" 
$Subject = "Reminder"
$body = "Client $clientname has to make a new appointment"
$projmail = Get-ADUser -filter { Name -eq $Project } -Properties * | select -    ExpandProperty mail 

$Convertdatelast = ([datetime]::ParseExact($datelast,"dd-MM-yyyy",$null))

If ($datelast -lt $CheckDate) {send-MailMessage -SmtpServer $smtp -To $mail -    cc -From $from -Subject $subject -Body $body -BodyAsHtml }
}

您不必将当前Date转换为字符串进行比较,也不必使用这种复杂的解析方法。

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

然后,您只需将两个变量与$datelast -lt $CheckDate进行比较$datelast -lt $CheckDate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM