所以我有一个包含 5 个标题的 CSV 文件:名称、collectionDate、位置、设备注释、经理。
现在我的 collectionDates 都是英国格式,所以 DD/MM/YYYY。我只想从 CSV 中导入未来 7 天或更短的收集日期的数据。所以今天是 17/08,因此我只想从 17/08 到 24/08 之间的 CSV 中提取数据。
尽管 Powershell 如果您告诉它可以处理英国格式的日期时间对象,但我似乎无法再操纵日期以添加 7 天。
这是我当前的代码:
$today = Get-Date
$thisWeek = $today.AddDays(7)
$thisWeekString = $thisWeek.ToString()
$dateParts = $thisweekString -split " "
$weekFinal = $dateParts[0]
$import = Import-Csv @("\\location\EmailCSV.csv") | Where-Object {$_.collectionDate -lt $weekFinal}
Powershell 正确地将 7 天添加到日期时间以使其成为 24/08,然后在将其转换为字符串并从中删除时间时,它正确地将变量设置为 24/08/2018。但是当我在 Import cmdlet 中比较它们时,它只返回 CSV 中的所有数据,而不是小于 24/08 的日期。
我也知道 Powershell 可以比较这些,因为如果我创建一个单独的变量 $otherDate,其中包含 24/08/2018,然后创建一个 if 语句来检查 $weekFinal 是大于还是小于 $otherDate,它会正确运行该语句当真。
我尝试在 Import-Csv cmdlet 中同时使用 Where 和 Where-Object,但两者都返回了相同的结果。
如何让 Powershell 正确比较 $_.collectionDate 和 $weekFinal 以过滤从 csv 导入的数据?