powershell - Powershell 比较 CSV 中的日期和今天的日期
问题描述
我有一个 csv 文件,其中最后一次约会的日期格式为 30-01-2018。项目名称 客户编号 客户姓名 上次约会日期 CCP nr CCP 姓氏 CCP 邮件
如果上次约会的日期是 10 个月前,我想发送一封电子邮件,以便他们有 2 个月的时间安排新的约会。邮件应该转到 ccp 邮件,如果项目名称为空。我有一个看起来不错的脚本,但我无法获取日期日期格式。
我到处阅读有关 parse 的信息,但如果我不转换它,我不会在过去两个月内获得随机用户,如果我尝试转换它,我会收到带有“3”参数的异常调用“ParseExact”: “字符串未被识别为有效的日期时间。”
$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 }
}
解决方案
您不必将当前日期转换为字符串进行比较,也不必使用如此复杂的解析方法。
$CheckDate = (Get-Date).AddMonths(-10)
$datelast = Get-Date ($user.'Date last appointment') #given the format is something like "30-01-2018"
然后,您只需将两个变量与$datelast -lt $CheckDate
.
推荐阅读
- php - 当页面有音频时,我如何假装延迟重新加载
- url - Zabbix:在 Web 场景或项目的“查询字段”中添加变量/宏
- scala - Openapi swagger 文档生成引用
- python - 较短版本的 python 代码块,使用 file.write
- android - SDK 安卓派
- java-ee-7 - 从 Wildfly 9 服务器中部署的 Web 应用程序连接到 Infinispan 13.0.1 集群时出错
- bash - Bash:stty:标准输入:SSH时设备的ioctl不合适
- python - 从现有数据框列创建新数据框
- tomcat - 我正在寻找在 Tomcat 中运行 Java EE Web Profile 所需的 maven 依赖项的规范列表
- python - 调整图像大小,使其大小与指定的纵横比匹配