Могу ли я не использовать WHERE в канале после псевдонима @ {name?
Мне нужно использовать в выводе собственные заголовки столбцов, поэтому я использую синтаксис имени @ {. Позже сортировка работает с использованием псевдонима, который я ей дал, а предложение WHERE - нет. Я попытался вернуться к исходному $ _. имя переменной, но они, похоже, тоже не работают. Когда я убираю предложение WHERE, я получаю вывод с псевдонимами заголовков.
ПРИМЕР без псевдонима @ {Имя и ГДЕ работает
PS C:\> Get-WmiObject Win32_operatingsystem | select version,BuildNUmber | where { $_.buildnumber -eq 3790} | sort version
version BuildNUmber
------- -----------
5.2.3790 3790
ПРИМЕР с псевдонимом и ГДЕ не работает
Get-WmiObject Win32_operatingsystem | select @{Name="Ver";Expression={$_.version}}, @{Name="Build";Expression={$_.BuildNUmber}} | where { "build" -eq 3790} | sort "ver"
EXAMPLE с псевдонимом и NO WHERE, выводится. SORT использует псевдоним и тоже работает.
PS C:\> Get-WmiObject Win32_operatingsystem | select @{Name="Ver";Expression={$_.version}}, @{Name="Build";Expression={$_.BuildNUmber}} | sort "ver"
Ver Build
--- -----
5.2.3790 3790
Итак, в идеале я хотел бы иметь возможность использовать имя @ {с предложением WHERE ..
У вас есть синтаксическая ошибка:
where { "build" -eq 3790}
Вышеупомянутый оператор функционально такой же, как:
where { $false }
Которая не вернет абсолютно ничего, что бы вы ей ни передали.
Измените это на
where { $_.Build -eq 3790 }