У меня есть текстовый файл HelplineSpecialRoster.txt, который выглядит следующим образом
01/01/2019,6AM,0400012345,Kurt,kurt@outlook.com
02/01/2019,6AM,0412345676,Bill,bill@outlook.com
03/01/2019,6AM,0400012345,Sam,Sam@outlook.com
04/01/2019,6AM,0412345676,Barry,barry@outlook.com
05/01/2019,6AM,0400012345,Kurt,kurt@outlook.com
Я в Австралии, поэтому даты - день / месяц / год.
У меня есть кодэто создает список, в котором отображаются строки из текстового файла, но я хочу отредактировать текстовый файл, прежде чем он будет отображаться, чтобы показывать только более старые даты.Полезный человек дал мне этот код, и он работал один раз, но теперь почему-то перестал работать.Когда я удаляю весь текстовый файл и воссоздаю его, он снова начинает работать, но только один раз.
Если в файле есть будущий сдвиг, скажем
05/02/2019,6AM,0400012345,Kurt,kurt@outlook.com
, а сегодняшняя дата 29/01/2019, он удаляет более старые сдвиги.Если в файле есть только старые сдвиги, как указано выше, они не удаляются.Когда я добавляю дату в будущем, она удаляет старые и сохраняет только будущую.
$SpecialRosterPath = "C:\Helpline Dialer\HelplineSpecialRoster.txt"
$CurrentDate2 = (Get-Date).Date # to have a datetime starting today at 00:00:00
Function DeleteOlderShifts {
$CurrentAndFutureShifts = Get-Content $SpecialRosterPath | Where-Object {
$_ -match "^(?<day>\d{2})\/(?<mon>\d{2})\/(?<year>\d{4})" -and
(Get-Date -Year $Matches.year -Month $Matches.mon -Day $Matches.day) -ge $CurrentDate2
}
$CurrentAndFutureShifts
$CurrentAndFutureShifts | Set-Content $SpecialRosterPath
}
DeleteOlderShifts;
Есть идеи?