How to Redirect a PowerShell Output to a File During Execution
-
Use the
Out-FileCmdlet to Redirect a PowerShell Output to a File During Execution -
Use the
Set-Contentto Redirect a PowerShell Output to a File During Execution -
Use the
Redirection Operatorsto Redirect a PowerShell Output to a File During Execution -
Use the
Tee-Objectto Redirect a PowerShell Output to a File During Execution
One of the fundamental features of PowerShell is that it formats the output automatically. You run a command or script, and PowerShell returns the result to the console.
But sometimes, there are situations when you need to write the output to a file rather than the console.
This tutorial will introduce different methods to redirect the output of a PowerShell to a file during its execution.
Use the Out-File Cmdlet to Redirect a PowerShell Output to a File During Execution
The Out-File cmdlet sends output to a file. It uses PowerShell’s formatting system to write to the file.
The outputs of the command or script are sent down the pipeline to the Out-File cmdlet. The content in the file is saved in the same way as displayed on the console.
Get-Command gcc | Out-File -FilePath C:\new\test.txt
Output:
The output of Get-Command gcc is sent to a file test.txt.

You can use the -Append parameter to add the output to the end of a file without replacing the existing content.
Get-Command git | Out-File -FilePath C:\new\test.txt -Append
Output:
The output of Get-Command git is added to the end of a test.txt file.

Use the Set-Content to Redirect a PowerShell Output to a File During Execution
The Set-Content is a string-processing cmdlet that writes new content or replaces the content in a file.
It converts the objects of command or script you send in the pipeline to strings and writes to a specified file.
./myscript.ps1 | Set-Content -Path C:\New\hello.txt
Output:
The output of myscript.ps1 is sent to a file hello.txt.

The Set-Content replaces the existing content in the file. You can use the Add-Content cmdlet to append content to a specified file.
Get-Date | Add-Content -Path C:\New\test.txt
Output:
The output of Get-Date is added to the end of a test.txt file.

Use the Redirection Operators to Redirect a PowerShell Output to a File During Execution
There are two redirection operators in PowerShell that you can use to redirect the output to a file. One is >, equivalent to the Out-File, and another is >>, equivalent to the Out-File -Append.
The > writes new content or replaces existing content in a file.
Get-Date > C:\New\new.txt
Whereas >> appends content to a specified file.
Get-Date >> C:\New\new.txt
Use the Tee-Object to Redirect a PowerShell Output to a File During Execution
The Tee-Object cmdlet (like the letter T) sends a command or script output in two directions. It stores the output in a file or variable and sends it down the pipeline.
If Tee-Object is the final command in the pipeline, the console also displays the output.
Get-Process | Tee-Object -FilePath C:\New\process.txt
Output:
As you can see, the output is saved in a file and displayed on the console.

You can use -Append with this cmdlet to append the output to a specified file.
Get-Process | Tee-Object -FilePath C:\New\process.txt -Append
