PowerShell Как использовать -и в Where-Object - PullRequest
0 голосов
/ 24 мая 2019

Я хочу отфильтровать результат команды, используя два условия. Вот мои команды

 $list=Get-PnpDevice | Sort-Object -Property Name | Where-Object -Property ConfigurationFlags -NotLike '*DISABLED*' | ft Name, InstanceId -AutoSize

и следующий фильтр

 $list=Get-PnpDevice | Sort-Object -Property Name | Where-Object -Property FriendlyName -like '*touch screen*' | ft Name, InstanceId -AutoSize

они оба работают отдельно, но я хочу присоединиться к ним, используя команду and. Я пытался использовать -AND в качестве следующей команды, но она продолжает выдавать ошибки


 Get-PnpDevice | Sort-Object -Property Name | Where-Object{
      ( ConfigurationFlags -NotLike '*DISABLED*') -and 
      ( FriendlyName -like '*touch screen*' ) }| ft Name, InstanceId -AutoSize

Ответы [ 2 ]

1 голос
/ 26 мая 2019

Вы можете соединить предложения 'Where' вместе ... это более простой синтаксис и легче для чтения

Get-PnpDevice | Sort-Object -Property Name | Where ConfigurationFlags -NotLike '*DISABLED*' | Where FriendlyName -like '*touch screen*' | ft Name, InstanceId -AutoSize
1 голос
/ 24 мая 2019

Просто используйте автоматическую переменную $_ в вашем Where-Object для ссылки на имена свойств:

Get-PnpDevice | Sort-Object -Property Name | Where-Object{
      ( $_.ConfigurationFlags -NotLike '*DISABLED*') -and 
      ( $_.FriendlyName -like '*touch screen*' ) }| ft Name, InstanceId -AutoSize
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...