Как я могу это исправить:
В этой группе 2 объекта, один содержит имя в поле «Переезд (Имя)», а другой - нет:
$rest.Group | select * | Where-Object {$_.SERV_UNIT -eq '2704'}
Account_no : 12345
SERV_UNIT : 2704
FINALREAD :
Move-In (Name) : OWNER / CURRENT TENANT
Move-In (Home Phone #) :
Move-In (Business Phone #) :
Move-In (Email) :
Account_no : 12345
SERV_UNIT : 2704
FINALREAD :
CHANNEL_ID :
Move-In (Name) :
Move-In (Home Phone #) :
Move-In (Business Phone #) :
Move-In (Email) :
Я хочу выбрать только тот, у которого есть ход по имени.
Однако с кодом, который я написал, поскольку они относятся к одной группе, я тоже не буду брать его:
$rest = $allinfo | Group-Object account_no | Where-Object { $_.Group.FINALREAD -contains '' -and $_.Group.'Move-In (Name)' -notcontains ''} | Select * -Unique
$ rest теперь ничего не значит. Я хочу, чтобы у него был один результат, первый с «Владелец» в качестве имени въезда.
Чтобы получить правильный результат, мне нужно сделать следующее:
$rest = $allinfo | Group-Object account_no | Where-Object { $_.Group.FINALREAD -contains ''} | Select * -Unique
$newRest = @()
foreach ($row in $rest.group) {
if ($row.'Move-In (Name)' -notcontains '')
{
$newRest += $row
}
}
Можно ли сделать все это в одной строке?
$rest = $allinfo | Group-Object account_no | Where-Object { $_.Group.FINALREAD -contains '' -and $_.Group.'Move-In (Name)' -notcontains ''} | Select * -Unique
Если нет, ничего страшного, у меня есть ответ.
Спасибо за помощь
$rest = $allinfo | Group-Object account_no | Where-Object { $_.Group.FINALREAD -contains '' -and $_.Group.'Move-In (Name)'} | Select * -Unique
не работает? - person Olaf   schedule 19.04.2018