Out-File is a cmdlet provided by Powershell core libraries. This cmdlet provides features to write created output into a file in the file system. In this tutorial, we will look at different ways to write output into a file with Out-File and Export-CSV cmdlets.

Write Into A File

One of the basic usage scenario of out-file is writing the output into a file without changing it. In this example we will write the output of Get-Process command into a file named process.txt by piping it. The file name can be specified as full path like C:\user\process.txt

PS> Get-Process | Out-File process.txt

Write Into A File

Append Into Existing File

If we just want to add new lines and do not want to remove existing data we should add new data with -Append option like below.

PS> Get-Process | Out-File -Append process.txt

Write As CSV

We can write created output into a file is CSV format. CSV format delimits the columns with comma. We will use Export-Csv cmdlet for this operation. This will take more time than raw write into file because row will be separated and each column will be delimited with command.

PS> Get-Process | Export-Csv test.txt

Write As CSV

Write Both File and Console

Another most used feature is while writing output into a file printing in the console too. This will provide verbose information about output. We will use Tee-Object which is inherited from Linux operating system.

In this example we get dir command output into console and file named dirs.txt

PS> Dir | Tee-Object -f dirs.txt