Поделиться через


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

Входные данные

PSObject

Объекты можно передать в этот командлет.

Выходные данные

PSObject

Этот командлет возвращает объекты, отправленные в качестве входных данных.

Примечания

PowerShell включает следующие псевдонимы для Write-Output:

  • Все платформы:

    • echo
  • Виндоус:

    • write