Powershell csv удалить строку - PullRequest
       37

Powershell csv удалить строку

0 голосов
/ 04 августа 2020

Я пытаюсь удалить строки из базы csv при определенных условиях в двух столбцах. Столбец статуса, если он имеет T, а второй столбец - Term Date, если дата старше последних 5 дней.

небольшой информационный столбец STATUS имеет либо «A», либо «T».

$path = "data.csv"
$maxAge = (Get-Date).AddDays(-5).Date
Import-Csv $path | Where-Object {$_.STATUS -eq "A" -or $_.TERMDATE -gt $maxAge} | 
Export-Csv -Path temp.csv -NoTypeInformation

в какой-то степени работает, но все же показывает даты прошлого года.

1 Ответ

1 голос
/ 04 августа 2020

Вам нужно будет преобразовать значение TERMDATE в объект datetime, чтобы провести точное сравнение.

$path = "data.csv"
$maxAge = (Get-Date).AddDays(-5).Date
Import-Csv $path |
    Where-Object {$_.STATUS -eq "A" -or [datetime]$_.TERMDATE -gt $maxAge} |
        Export-Csv -Path temp.csv -NoTypeInformation

Если приведение [datetime] не работает, вам понадобится для анализа строки и выполнения преобразования. Чтобы решить эту проблему, нам необходимо знать исходный формат даты TERMDATE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...