конвейерные объекты к строке выбора появляются пустыми - PullRequest
0 голосов
/ 20 октября 2019

Почему это пусто? Я ищу переменные, связанные с домашним каталогом. Должен ли я прибегнуть к findstr в этих случаях? Я понимаю, что я обожаю объект. Я хотел бы иметь возможность искать все свойства. -InputOjbect имеет тип PSObject.

dir variable: | select-string users

Ожидаемый результат:

$                              users
HOME                           C:\Users\js
PROFILE                        C:\Users\js\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
PWD                            C:\Users\js

РЕДАКТИРОВАТЬ:

Вот несколько странный ответ, но я должен добавить в свойствахЯ хочу.

dir variable: | select name,value | select-string users

@{Name=HOME; Value=C:\Users\js}
@{Name=PROFILE; Value=C:\Users\js\Documents\PowerShell\Microsoft.PowerShell_profile.ps1}
@{Name=PWD; Value=C:\Users\js}

1 Ответ

2 голосов
/ 20 октября 2019

Если вы хотите, чтобы он работал как оболочка Linux, я бы использовал следующее:

    dir variable:  |Out-String -Stream  |Select-String "users"

Out-string преобразует объект в String. (-stream: строка за строкой)

Итак, строка выбора работает так, как задумано.

Или если мы хотим получить объекты, а не строку как результат:

dir variable:  |where {$_.value -match "users" -or $_.name -match "users"}
...