Implementing -whatIf in a PowerShell function
I've got a function in a module I use to deploy binaries and files to various websites and wanted to usethe -whatIf switch on the function and have all the new-Item and copy-Item commandlets pickup the switch.
It took a bit of working out from various sources how to do it. It's actually really simple. Before the param declaration in the function, simply add this cmdltbinding:
[cmdletbinding(SupportsShouldProcess=$True)]
And the -whatIf (and -confirm) switch is passed through the pipeline to the commandlets.
So the function looks like this:
function copy-Files
{
[cmdletbinding(SupportsShouldProcess=$True)]
param(
$myParam
)
# Function here
}
That's it!