Я пытаюсь отсортировать строки, возвращаемые консольной программой по дате, используя PowerShell.
Даты форматируются в формате MM / dd / yyyy, поэтому их необходимо преобразовать в объекты DateTime, чтобы они были в сортируемом формате.
Для разбора дат я использую:
$dates = %{ "10/24/2010", "02/03/2010" }
$dates | %{ [System.DateTime]::ParseExact($_, "MM/dd/yyyy", $null) }
Это анализирует даты в объектах System.DateTime и отображает их представление ToString () по умолчанию, но также показывает дополнительную пустую строку в начале.
Теперь, если я пытаюсь отсортировать даты с помощью Sort-Object, я получаю сообщение об ошибке, и я предполагаю, что ошибка возникает из дополнительной пустой строки:
$sortedDates = $dates | Sort-Object [System.DateTime]::ParseExact($_, "MM/dd/yyyy", $null)
Сообщение об ошибке:
"Объект сортировки: не найден позиционный параметр, который принимает аргумент 'System.Object []'."
Откуда берется дополнительная пустая строка? Я делаю что-то неправильно, чтобы разобрать даты или отсортировать их?