Powershell: how to implement standard switches?
Write-Debug
and Write-Verbose
handle the -Debug
and -Verbose
parameters automatically.
-PassThru
isn't technically a common parameter, but you can implement it like:
function PassTest { param( [switch] $PassThru ) process { if($PassThru) {$_} }}1..10|PassTest -PassThru
And this is an example of using your function's PassThru value on a cmdlet:
function Add-ScriptProperty { param( [string] $Name, [ScriptBlock] $Value, [switch] $PassThru ) process{ # Use ":" to explicitly set the value on a switch parameter $_| Add-Member -MemberType ScriptProperty -Name $Name -Value $Value ` -PassThru:$PassThru }}$calc = Start-Process calc -PassThru| Add-ScriptProperty -Name SecondsOld ` -Value {((Get-Date)-$this.StartTime).TotalSeconds} -PassThrusleep 5$calc.SecondsOld
Have a look at Get-Help about_CommonParameters
for more information.