I have done this before because if the file does not exist then Set-Content will create a new file for you, but with this function I can check if the file exists first with the ValidateScript before running the rest of the function.
As you can see I add variables from my PowerShell code into the “The Item” and “The Change”. If I need to add a property of an object I use $($Item.Property).
So now, if I want to see what my new function would do if I ran it without actually making any changes I have -WhatIf added to my function automagically.
It’s easy to do and makes your code that much better.