Я изучаю PowerShell, поэтому много делаю такие вещи:
Get-Command | Out-String -Stream | ss child
(ss
- псевдоним для select-string
).
Я устаю набирать Out-string -Stream
все время, поэтому в Unix я бы просто создал для него псевдоним. Однако это не работает в Powershell.
- Я создал его как псевдоним, и он допустил ошибку (кажется, я понимаю это).
- Я создал его как функцию, но он проглотил весь мой вывод
- Я создал его как фильтр, и это также не привело к выводу.
Как я могу это сделать?
Использование * child * в качестве аргумента, вероятно, является наилучшим способом выполнения этой конкретной задачи, но я действительно использую это в качестве примера, чтобы научиться писать функции PS.
Я просто хочу, чтобы функция заменила часть 'Out-string -Stream', чтобы вместо:
Get-Command | Out-String -Stream | ss child
Я смогу написать:
Get-Command | oss | ss child
Я предполагаю, что мне нужно использовать ValueFromPipeline или переменную ввода $, как показывает Мэтт.
Хорошо, я понял. Я думаю, мне нужно явно сказать, чтобы читать из конвейера. Вместо:
function oss { Out-String -Stream }
Мне нужно сказать:
function oss { $input | Out-String -Stream }
Интересно, как я пропустил это в документации?