Передача даты-времени в качестве переменной вместо фильтра где-объекта - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь использовать приведенный ниже код с диапазоном дат в качестве фильтра Where-Object, но это замедляет мою скорость вывода и невозможность экспорта в csv.

$Prids = get-content -Path C:\Temp\sqltest.txt
foreach ($prid in $prids){
$filterDate = [datetime]::Today.AddDays(-22)
Get-CdPac2000Problems  -PId $Prid  | Where-Object {$_.ClosedDate.Date -ge $filterDate} |ft PID,ClosedDate,ClosedByELID,ResponsibleGroup,ReferredDate -autosize
}

Как я могу изменить Where-Object на параметр, который выглядит как -closedate $ variable, как я делал с -PID? Самая большая проблема для меня - создать переменную datetime.

1 Ответ

0 голосов
/ 21 июня 2019

Во-первых, вы должны вывести $filterDate из цикла, во-вторых, вы НИКОГДА не должны использовать Format-Table и АБСОЛЮТНО НИКОГДА в цикле.

Попробуйте это:

$filterDate = [datetime]::Today.AddDays(-22)
$Prids = get-content -Path C:\Temp\sqltest.txt
$Result = foreach ($prid in $prids){
    Get-CdPac2000Problems  -PId $Prid  | Where-Object {(Get-Date $_.ClosedDate.Date) -ge $filterDate}
}
$Result | Format-Table PID,ClosedDate,ClosedByELID,ResponsibleGroup,ReferredDate -autosize

Одна из самых красивых вещей в PowerShell - это то, что вы можете напрямую взаимодействовать со всеми объектами.Все методы и свойства сохраняются при передаче объектов в переменную или в следующую команду в конвейере.Format-Table преобразует объекты в таблицу - что-то удобочитаемое для человека и что-то лишенное методов и жизни.

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