Write-Output
Записывает указанные объекты в конвейер.
Синтаксис
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 directory: $HOME"
можно написать как "Home directory: $HOME"
.
По умолчанию Write-Output
перечисляет объекты в коллекции. Однако Write-Output
также может передавать коллекции по конвейеру в виде одного объекта с параметром NoEnumerate.
Примеры
Пример 1. Получение объектов и их запись в консоль
В этом примере результаты командлета Get-Process
хранятся в переменной $P
. Командлет Write-Output
отображает объекты процесса в $P
на консоль.
$P = Get-Process
Write-Output $P
Пример 2: Передача выходных данных на другой командлет
Эта команда направляет строку "test output" в командлет 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
Указывает объекты для отправки по конвейеру. Введите переменную, содержащую объекты, или введите команду или выражение, которое получает объекты.
Тип: | PSObject[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-NoEnumerate
По умолчанию командлет Write-Output
всегда перечисляет выходные данные. Параметр NoEnumerate подавляет поведение по умолчанию и предотвращает перечисление выходных данных Write-Output
. Параметр NoEnumerate не действует, если команда заключена в скобки, так как скобки принуждают к перечислению. Например, (Write-Output 1,2,3 -NoEnumerate)
по-прежнему перечисляет массив.
Параметр NoEnumerate полезен только в конвейере. Попытка увидеть эффекты NoEnumerate в консоли проблематична, так как PowerShell добавляет Out-Default
в конец каждой командной строки, что приводит к перечислению. Но если передать Write-Output -NoEnumerate
другому командлету, подчиненный командлет получает объект коллекции, а не перечисленные элементы коллекции.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Объекты можно передать в этот командлет.
Выходные данные
Этот командлет возвращает объекты, отправленные в качестве входных данных.
Примечания
PowerShell включает следующие псевдонимы для Write-Output
:
Все платформы:
echo
Виндоус:
write
Связанные ссылки
PowerShell