PowerShell Script Files - Set-Content Cmdlet
I don't use Set-Content very often, this is because for routine tasks that need to save to file I prefer to use Out-File. The one job that I have for the Set-Content cmdlet is editing a file with -Replace. What makes me wary of Set-Content is that instead of appending, its default behaviour is to delete the contents of a file.
# PowerShell Set-Content cmdlet
Note 1: The reason that I used the variable $File to define the path, is that I want to remind you to change its value before running this script on your machine.
Note 2: If the file specified does not exist PowerShell creates it!
Note 3: However, if the file has existing content, the new value will overwrite the old entries with the -value.
Note 4: One reason that PowerShell is replacing VBScript is the ease with which PowerShell creates, opens and closes files. In fact it handles these basic file operations automatically, thus don't look for, or worry about, 'File Close', PowerShell will handle the operation natively.
Although -Replace does not appear amongst the parameter's of any PowerShell cmdlet it clearly works in this context. Observe in this example how the two Content cmdlets work together to edit the text.
# Example of Set-Content -Replace
Note 5: See more about -Replace
Research Set-Content Parameters
# PowerShell Set-Content Parameters
Checking the help file will reveal useful parameters, for instance you can employ the -Force parameter to overwrite read-only files. Reading the help file also reveals that this command is primarily used for writing text to multiple files, perhaps this is why I am wary of using it myself and avoid recommending this particular cmdlet for others to practice with.
# PowerShell Content Cmdlet Research
Research PowerShell Alias 'Sc'
# PowerShell Alias Ac
With Microsoft, there are always at least three ways of doing everything, what seems like redundancy when you are an expert, seems like perspective when you are a beginner. One obvious example is that you can abbreviate Format-Table to ft. As you increase your range of PowerShell commands, keep an eye out for another PowerShell Alias, for example gci (Get-Childitem).
Summary of PowerShell's Set-Content Cmdlet
In VBScript dealing with files was never straightforward. However, with PowerShell it's so effortless that you may not realize that the Set-Content cmdlet opens and closes as part of its job description.
Set-Content is a simple enough cmdlet to understand. What it does is write text to files. Just playing with Set-Content leads to questions such as 'Why bother', or 'What's the point?' I hope that your answer to such questions will give you a PowerShell technique that you can incorporate in bigger more complex scripts.
If you like this page then please share it with your friends
See more Microsoft PowerShell file tutorials:
Please email me if you have a better example script. Also please report any factual mistakes, grammatical errors or broken links, I will be happy to correct the fault.