Partager via


Write-Output

Écrit les objets spécifiés dans le pipeline.

Syntaxe

Write-Output
     [-InputObject] <PSObject[]>
     [-NoEnumerate]
     [<CommonParameters>]

Description

Écrit les objets spécifiés dans le pipeline. S’il Write-Output s’agit de la dernière commande du pipeline, les objets sont affichés dans la console.

Write-Outputenvoie des objets au pipeline principal, également appelé flux de réussite. Pour envoyer des objets d’erreur au flux d’erreurs, utilisez Write-Error.

Cette applet de commande est généralement utilisée dans les scripts pour afficher les chaînes et autres objets sur la console. L’un des alias intégrés pour Write-Output est echo et similaire à d’autres interpréteurs de commandes qui utilisent echo. Le comportement par défaut consiste à afficher la sortie à la fin d’un pipeline. Dans PowerShell, il n’est généralement pas nécessaire d’utiliser l’applet de commande dans les cas où la sortie est affichée par défaut. Par exemple, Get-Process | Write-Output équivaut à Get-Process. Ou, echo "Home directory: $HOME" peut être écrit, "Home directory: $HOME".

Par défaut, Write-Output énumère les objets d’une collection. Toutefois, Write-Output peut également transmettre des regroupements au pipeline en tant qu’objet unique avec le paramètre NoEnumerate .

Exemples

Exemple 1 : Obtenir des objets et les écrire dans la console

Dans cet exemple, les résultats de l’applet Get-Process de commande sont stockés dans la $P variable. L’applet Write-Output de commande affiche les objets de processus dans $P la console.

$P = Get-Process
Write-Output $P

Exemple 2 : Passer la sortie à une autre applet de commande

Cette commande canalise la chaîne « test output » vers l’applet Get-Member de commande, qui affiche les membres de la classe System.String , montrant que la chaîne a été transmise le long du pipeline.

Write-Output "test output" | Get-Member

Exemple 3 : Supprimer l’énumération dans la sortie

Cette commande ajoute le paramètre NoEnumerate pour traiter une collection ou un tableau en tant qu’objet unique via le pipeline.

Write-Output 1,2,3 | Measure-Object

Count    : 3
...

Write-Output 1,2,3 -NoEnumerate | Measure-Object

Count    : 1
...

Paramètres

-InputObject

Spécifie les objets à envoyer dans le pipeline. Entrez une variable contenant les objets, ou tapez une commande ou une expression qui obtient ces objets.

Type:PSObject[]
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-NoEnumerate

Par défaut, l’applet Write-Output de commande énumère toujours sa sortie. Le paramètre NoEnumerate supprime le comportement par défaut et empêche Write-Output l’énumération de la sortie. Le paramètre NoEnumerate n’a aucun effet si la commande est encapsulée entre parenthèses, car les parenthèses forcent l’énumération. Par exemple, (Write-Output 1,2,3) énumère toujours le tableau.

Le paramètre NoEnumerate est utile uniquement dans un pipeline. La tentative de voir les effets de NoEnumerate dans la console est problématique, car PowerShell ajoute Out-Default à la fin de chaque ligne de commande, ce qui entraîne l’énumération. Toutefois, si vous dirigez Write-Output -NoEnumerate vers une autre applet de commande, l’applet de commande en aval reçoit l’objet de collection, et non les éléments énumérés de la collection.

Important

Il existe un problème avec ce commutateur dans Windows PowerShell qui est résolu dans PowerShell 6.2 et versions ultérieures. Lorsque vous utilisez NoEnumerate et explicitement à l’aide du paramètre InputObject , la commande énumère toujours. Pour contourner ce problème, passez la ou les arguments InputObject positionally.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

PSObject

Vous pouvez diriger des objets vers cette applet de commande.

Sorties

PSObject

Cette applet de commande retourne les objets envoyés en tant qu’entrée.

Notes

Windows PowerShell inclut les alias suivants pour Write-Output:

  • echo
  • write