Write-Output (Microsoft.PowerShell.Utility)
Write-Output
- Модуль:
- Microsoft.PowerShell.Utility
Записывает указанные объекты в конвейер.
Синтаксис
Write-Output
[-InputObject] <PSObject[]>
[-NoEnumerate]
[<CommonParameters>]Описание
Записывает указанные объекты в конвейер. Если Write-Output — последняя команда в конвейере, объекты отображаются в консоли.
Write-Output отправляет объекты в основной конвейер, также известный как поток успеха. Чтобы отправить объекты ошибок в поток ошибок, используйте Write-Error.
Этот командлет обычно используется в сценариях для отображения строк и других объектов на консоли. Одним из встроенных псевдонимов для Write-Output является echo, он аналогичен другим оболочкам, использующим echo. Поведение по умолчанию — отображение вывода в конце конвейера. В PowerShell обычно нет необходимости использовать командлет в тех случаях, когда выходные данные отображаются по умолчанию. Например, Get-Process | Write-Output эквивалентен Get-Process. Или echo "Домашний каталог: $HOME" можно записать, "Домашний каталог: $HOME".
По умолчанию Write-Output перечисляет объекты в коллекции. Однако Write-Output также может передавать коллекции по конвейеру как один объект с параметром NoEnumerate.
Примеры
Пример 1. Получение объектов и запись их в консоль
В этом примере результаты командлета Get-Process сохраняются в переменной $P. Командлет Write-Output отображает объекты процесса в $P на консоли.
$P = Get-Process
Write-Output $PПример 2. Передача вывода в другой командлет
Эта команда передает строку «вывод теста» в командлет Get-Member, который отображает члены класса System.String, демонстрируя, что строка была передана по конвейеру. .
Write-Output "test output" | Get-MemberПример 3. Подавление перечисления в выводе
Эта команда добавляет параметр NoEnumerate для обработки коллекции или массива как одного объекта в конвейере.
Write-Output 1,2,3 | Measure-Object
Count : 3
...
Write-Output 1,2,3 -NoEnumerate | Measure-Object
Count : 1
...Параметры
-InputObject
Указывает объекты для отправки по конвейеру. Введите переменную, содержащую объекты, или введите команду или выражение, позволяющее получить объекты.
- Тип :
PSОбъект[]
- Позиция:
0
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
True
- Принимайте подстановочные знаки:
False
-NoEnumerate
По умолчанию командлет Write-Output всегда перечисляет свои выходные данные. Параметр NoEnumerate подавляет поведение по умолчанию и не позволяет Write-Output перечислять выходные данные. Параметр NoEnumerate не действует, если команда заключена в круглые скобки, поскольку круглые скобки вызывают перечисление. Например, (Write-Output 1,2,3) по-прежнему перечисляет массив.
Параметр NoEnumerate полезен только внутри конвейера. Попытка увидеть эффект NoEnumerate в консоли проблематична, поскольку PowerShell добавляет Out-Default в конец каждой командной строки, что приводит к перечислению. Но если вы передадите Write-Output -NoEnumerate другому командлету, подчиненный командлет получит объект коллекции, а не перечисляемые элементы коллекции.
- Тип :
SwitchParameter
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
Входы
PSObject
Вы можете передавать объекты в этот командлет.
Выходы
PSObject
Этот командлет возвращает объекты, отправленные в качестве входных данных.
Примечания
PowerShell включает следующие псевдонимы для Write-Output:
Все платформы:
echo
Windows:
write