Write-Host

Scrive output personalizzato in un host.

Sintassi

Write-Host
     [[-Object] <Object>]
     [-NoNewline]
     [-Separator <Object>]
     [-ForegroundColor <ConsoleColor>]
     [-BackgroundColor <ConsoleColor>]
     [<CommonParameters>]

Descrizione

Lo Write-Host scopo principale del cmdlet è quello di produrre output solo per-(host)-display, ad esempio la stampa di testo colorato, ad esempio quando viene richiesto all'utente di immettere in combinazione con Read-Host. Write-Host usa il metodo ToString() per scrivere l'output. Al contrario, per restituire i dati alla pipeline, usare l'output di scrittura o l'output implicito.

È possibile specificare il colore del testo usando il ForegroundColor parametro ed è possibile specificare il colore di sfondo usando il BackgroundColor parametro . Il parametro Separator consente di specificare una stringa da usare per separare gli oggetti visualizzati. Il risultato specifico dipende dal programma che ospita PowerShell.

Nota

A partire da Windows PowerShell 5.0, Write-Host è un wrapper per Write-Information Questo consente di usare Write-Host per generare output nel flusso di informazioni. Ciò consente l'acquisizione o l'eliminazionedei dati scritti usando Write-Host mantenendo al tempo stesso la compatibilità con le versioni precedenti.

La $InformationPreference variabile di preferenza e InformationAction il parametro comune non influiscono sui Write-Host messaggi. L'eccezione a questa regola è -InformationAction Ignore, che elimina in modo efficace l'output Write-Host . (vedere "Esempio 5")

Esempio

Esempio 1: Scrivere nella console senza aggiungere una nuova riga

Write-Host "no newline test " -NoNewline
Write-Host "second string"

no newline test second string

Questo comando visualizza la stringa 'no newline test' con il NoNewline parametro .

Viene scritta una seconda stringa, ma termina sulla stessa riga della prima a causa dell'assenza di una nuova riga che separa le stringhe.

Esempio 2: Scrivere nella console e includere un separatore

Write-Host (2,4,6,8,10,12) -Separator ", +2= "

2, +2= 4, +2= 6, +2= 8, +2= 10, +2= 12

Questo comando visualizza i numeri pari da due a dodici. Il parametro Separator viene usato per aggiungere la stringa , +2= (virgola, spazio, +, =2spazio).

Esempio 3: Scrivere con testo e colori di sfondo diversi

Write-Host (2,4,6,8,10,12) -Separator ", -> " -ForegroundColor DarkGreen -BackgroundColor White

2, -> 4, -> 6, -> 8, -> 10, -> 12

Questo comando visualizza i numeri pari da due a dodici. Usa il ForegroundColor parametro per restituire testo verde scuro e il BackgroundColor parametro per visualizzare uno sfondo bianco.

Esempio 4: Scrivere con testo e colori di sfondo diversi

Write-Host "Red on white text." -ForegroundColor red -BackgroundColor white

Red on white text.

Questo comando visualizza la stringa "Red on white text". Il testo è rosso, come definito dal ForegroundColor parametro . Lo sfondo è bianco, come definito dal BackgroundColor parametro .

Esempio 5: Eliminare l'output da Write-Host

# The following two statements can be used to effectively suppress output from Write-Host
Write-Host "I won't print" -InformationAction Ignore
Write-Host "I won't print" 6> $null

Questi comandi eliminano efficacemente l'output del Write-Host cmdlet. Il primo usa il parametro con value InformationAction per eliminare l'output Ignore nel flusso di informazioni. Il secondo esempio reindirizza il flusso di informazioni del comando alla $null variabile e quindi lo elimina. Per altre informazioni, vedere about_Output_Flussi.

Parametri

-BackgroundColor

Specifica il colore di sfondo. Non prevede alcun valore predefinito. I valori validi per questo parametro sono:

  • Black
  • DarkBlue
  • DarkGreen
  • DarkCyan
  • DarkRed
  • DarkMagenta
  • DarkYellow
  • Gray
  • DarkGray
  • Blue
  • Green
  • Cyan
  • Red
  • Magenta
  • Yellow
  • White
Type:ConsoleColor
Accepted values:Black, DarkBlue, DarkGreen, DarkCyan, DarkRed, DarkMagenta, DarkYellow, Gray, DarkGray, Blue, Green, Cyan, Red, Magenta, Yellow, White
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ForegroundColor

Specifica il colore del testo. Non prevede alcun valore predefinito. I valori validi per questo parametro sono:

  • Black
  • DarkBlue
  • DarkGreen
  • DarkCyan
  • DarkRed
  • DarkMagenta
  • DarkYellow
  • Gray
  • DarkGray
  • Blue
  • Green
  • Cyan
  • Red
  • Magenta
  • Yellow
  • White
Type:ConsoleColor
Accepted values:Black, DarkBlue, DarkGreen, DarkCyan, DarkRed, DarkMagenta, DarkYellow, Gray, DarkGray, Blue, Green, Cyan, Red, Magenta, Yellow, White
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoNewline

Le rappresentazioni di stringa degli oggetti di input vengono concatenate per formare l'output. Non vengono inseriti spazi o nuove righe tra le stringhe di output. Nessuna nuova riga viene aggiunta dopo l'ultima stringa di output.

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

-Object

Oggetti da visualizzare nell'host.

Type:Object
Aliases:Msg, Message
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Separator

Specifica una stringa separatore da inserire tra gli oggetti visualizzati dall'host.

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

Input

Object

È possibile inviare tramite pipe oggetti da scrivere nell'host in questo cmdlet.

Output

None

Questo cmdlet non restituisce output. Invia gli oggetti all'host. L'host visualizza gli oggetti inviati da questo cmdlet.

Note

  • Quando si scrive una raccolta nell'host, gli elementi della raccolta vengono stampati sulla stessa riga separata da un singolo spazio. È possibile eseguire l'override con il parametro Separator .

  • I tipi di dati non primitivi, ad esempio gli oggetti con proprietà, possono causare risultati imprevisti e non fornire output significativo. Ad esempio, Write-Host @{a = 1; b = 2} verrà stampato System.Collections.DictionaryEntry System.Collections.DictionaryEntry nell'host.