Difference Between Set-Content and Out-File
One of the key features of PowerShell is its ability to save data from scripts in files. In this blog post, we will compare two methods used to do this in PowerShell:
What is Set-Content?
Set-Content is a built-in cmdlet in PowerShell that allows you to write content to a file. It is mainly used for creating files and writing the contents of variables into them. This cmdlet also has an alias
sc which stands for
set content. You can use this alias instead of the full name when you are scripting.
What is Out-File?
Out-File is another built-in cmdlet that creates and writes data to text files. It is similar to Set-Content but there are some important differences between the two commands that need to be taken into consideration when deciding which one to use in your script.
The most notable difference between these two commands is that
Set-Content will overwrite existing content while
Out-File allow us to append new content to existing file using
-Append parameter. This means that if you want your script to add more information to an existing file without overwriting any existing data then you could use
-Append parameter instead of
Suppose you have existing file called
example.txt contains below data:
This is old content
We can replace existing content using below command:
Set-Content -Path .\example.txt -Value "This is new content"
However, if we want to append the existing content we can use
-Append parameter like below:
Out-File -Path .\example.txt -InputObject "This is new content" -Append
Out-File can be used for writing data from scripts into files. However, there is a difference that
Set-Content will replace the existing content with a new one while
Out-File allows us to append a new content using