- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Difference between Write-Output and Write-Host command in PowerShell?
Have we ever wondered, Write-Output and Write-Host both are used to print the strings or the output of the command then what is the difference between them?
Example
PS C:\> Write-Output "Test String" Test String PS C:\> Write-Host "Test String" Test String
The output remains the same.
The first major difference is storing the output using the Pipeline structure. Write-Output and Write-Host both support the pipeline structure for example,
Example
"Test String" | Write-Output Test String "Test String" | Write-Host Test String
The output remains the same.
The first major difference is storing the output using the Pipeline structure. Write-Output and Write-Host both support the pipeline structure for example,
Example
"Test String" | Write-Output Test String "Test String" | Write-Host Test String
But when we store the output then it shows the difference between two commands.
Output
$a = "Test String" | Write-Output Get-Variable a Name Value ---- ----- a Test String $b = "Test String" | Write-Host Test String Get-Variable b Name Value ---- ----- b
In the above example, when the string output is stored into a variable, Write-Output can store it while Write-Host displays the output in the console and the output is not assigned to a variable because Write-Host produces output directly to the console while Write-Output produces and store the output inside the variable. That is the reason it is not recommended to use the Write-Host for the PowerShell remoting if scripter is not aware of the remote host having the console working properly or not.
Another difference is, with the Write-Host cmdlet, you can decorate the output with background and foreground (text) color and this is not possible in Write-Output command.
Example
Write-Host "Dark green backgound with White text" -BackgroundColor DarkGreen -ForegroundColor White Dark green backgound with White text