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
. In questo modo è possibile usare Write-Host
per generare l'output nel flusso di informazioni. Ciò consente l'acquisizione o l'eliminazione dei 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, +
, =
2
spazio).
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_Streams.
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
Tipo: | ConsoleColor |
Valori accettati: | Black, DarkBlue, DarkGreen, DarkCyan, DarkRed, DarkMagenta, DarkYellow, Gray, DarkGray, Blue, Green, Cyan, Red, Magenta, Yellow, White |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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
Tipo: | ConsoleColor |
Valori accettati: | Black, DarkBlue, DarkGreen, DarkCyan, DarkRed, DarkMagenta, DarkYellow, Gray, DarkGray, Blue, Green, Cyan, Red, Magenta, Yellow, White |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Object
Oggetti da visualizzare nell'host.
Tipo: | Object |
Alias: | Msg, Message |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Separator
Specifica una stringa separatore da inserire tra gli oggetti visualizzati dall'host.
Tipo: | Object |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È 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à stampatoSystem.Collections.DictionaryEntry System.Collections.DictionaryEntry
nell'host.