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


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. Передача выходных данных другому командлету

Эта команда передает строку "выходных данных теста" командлету 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

Задает объекты для отправки в конвейер. Введите переменную, которая содержит объекты, или команду или выражение, которое возвращает объекты.

Type:PSObject[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoEnumerate

По умолчанию Write-Output командлет всегда перечисляет свои выходные данные. Параметр NoEnumerate подавляет поведение по умолчанию и запрещает перечисление выходных Write-Output данных. Параметр NoEnumerate не действует, если команда заключена в круглые скобки, так как в скобках выполняется принудительное перечисление. Например, (Write-Output 1,2,3) по-прежнему перечисляет массив .

Параметр NoEnumerate полезен только в конвейере. Попытка увидеть влияние NoEnumerate в консоли проблематична, так как PowerShell добавляет Out-Default в конец каждой командной строки, что приводит к перечислению. Но если передать Write-Output -NoEnumerate его в другой командлет, подчиненный командлет получит объект коллекции, а не перечисленные элементы коллекции.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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

PSObject

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

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

PSObject

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

Примечания

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

  • Для всех платформ.

    • echo
  • Windows:

    • write