What is the PowerShell Write-Host?
The Write-Host produces a customized displayed output to a host or console. We'll cover its syntax, inputs, outputs, and parameters. We'll wrap it up with a few examples.
Syntax
Write-Host[[-Object] <Object>][-NoNewline][-Separator <Object>][-ForegroundColor <ConsoleColor>][-BackgroundColor <ConsoleColor>][<CommonParameters>]
Inputs
Instead of the -Object parameter, the object can alternatively be piped as an input to Write-Host.
Outputs
The Write-Host doesn't return any objects but displays them to the host or console.
Parameters
-BackgroundColor: This colors the background behind the text, which has no default value.
-ForegroundColor: This colors the text, which has no default color. The available colors are the same as the colors for-BackgroundColor.-NoNewline: Applying this parameter will result in the nextWrite-Hostcall displaying its output next to the first call. No newline nor space is added after the first output.-Object: This is the object(s) to display. If it is a collection, then its elements are separated by a space character. This can be overridden with the separator parameter. This can alternatively be supplied as an input toWrite-Host.-Separator: This is the separator string to insert between objects in the output.
Example 1
Write-Host ("Hello", "World") -ForegroundColor White -BackgroundColor DarkRed -separator ", "
Let's take a look at this line.
("Hello", "World"): This is the object as the input. This will be printed according to the other parameters. Alternatively, we can supply this object by using the-Objectparameter, i.e.-Object ("Hello", "World").-ForegroundColor White: This colors the text white.-BackgroundColor DarkRed: This colors the background dark red.-separator ", ": The separator between the elements "Hello" and "World" is a comma and a space character.
Try out the command in the terminal below.
Example 2
Write-Host "Hello" -NoNewlineWrite-Host "World"
Let's take a look at this line.
"Hello" -NoNewline: This will print "Hello". The-noNewlineparameter means this call ofWrite-Hostwill not add a newline at the end of its output. We can write multiple lines to PowerShell by using "shift" + "enter".Write-Host "World":This will print "World".
Try out the command in the terminal below.
Example 3
Write-Host (1,2,3) 6> .\log.txt
Let's take a look at this line.
(1,2,3): It's the object which will be formatted with spaces between each number, i.e., "1 2 3".6>: This is the redirection operator which refers to the information stream. The output is "1 2 3" in alog.txtfile, which will be created if it doesn't exist. The command(Get-ChildItem).FullNamecan be used to see the file created.