Write-Debug
и Write-Verbose
обрабатывают параметры -Debug
и -Verbose
автоматически.
-PassThru
технически не является общим параметром, но вы можете реализовать его следующим образом:
function PassTest {
param(
[switch] $PassThru
)
process {
if($PassThru) {$_}
}
}
1..10|PassTest -PassThru
И это пример использования значения PassThru вашей функции в командлете:
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} -PassThru
sleep 5
$calc.SecondsOld
Для получения дополнительной информации посмотрите Get-Help about_CommonParameters
.