По умолчанию Out-String
создается однострочный объект, который содержит все выходные данные, поэтому следующий фильтр выберет или отбросит все выходные данные целиком. Вам необходимо использовать -Stream
параметр Out-String
командлета для создания отдельного строкового объекта для каждой строки вывода.
фильтровать выходы, используя каналы select-string
В bash, если я сделаю следующее, я получу все переменные окружения с wd
ними.
env | grep "wd"
Теперь, в Powershell, я знаю, что мог сделать
get-childitem env:wd*
Но я хочу направить канал к select-string как более общий подход, чтобы отфильтровать то, что поступает из его канала, независимо от того, что находится слева от канала. Так же, как grep.
Это ничего не фильтрует, я получаю все переменные окружения.
get-childitem env: | out-string | select-string -Pattern wd
И это мне ничего не дает
get-childitem env: | select-string -Pattern "wd"
Я знаю, что мог бы использовать следующее, и на самом деле было бы лучше, если бы я фильтровал только по имени переменной среды. Но что, если я хочу быстрый и грязный фильтр а-ля grep? И особенно, не зная об атрибутах того, что приходит из трубы.
get-childitem env: | where-object {$_.Name -like "wd*"}
то есть есть ли Powershelll, эквивалентный grep, применимый в контексте конвейера, а не только в контексте поиска файлов, который, select-string
кажется, хорошо покрывает.
1 ответ на вопрос
Похожие вопросы
-
6
Хорошее руководство по PowerShell, начало работы с более продвинутым использованием
-
5
Отключение звукового сигнала окна cmd
-
3
Powershell пинг до бесконечности
-
-
5
Сочетание клавиш для вставки в командной строке Windows
-
5
Какие преимущества может получить средний гик от Powershell?
-
1
Powershell: выполнить операцию для всех файлов в каталоге (foreach)
-
1
Выделение Powershell / CMD для копирования правой кнопкой мыши в Vista
-
3
Что такое Windows PowerShell?
-
5
Как сделать скрипт Powershell (или другой) для изменения разрешения экрана?
-
5
Получить текущий UNC-путь из локального пути в powershell