Powershell: how to implement standard switches? Powershell: how to implement standard switches? powershell powershell

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.