bwe*_*rks 15 debugging powershell passthru command-line-arguments verbose
对于像-WhatIf这样的东西,我们有[CmdletBinding]属性给我们的$ PSCmdlet.ShouldProcess().是否有其他此类工具或实践来实现常见的命令行参数,如-Verbose,-Debug,-PassThru等?
Ryn*_*ant 15
Write-Debug并自动Write-Verbose处理-Debug和-Verbose参数.
-PassThru 从技术上讲,它不是一个常见的参数,但您可以像下面这样实现它:
function PassTest {
param(
[switch] $PassThru
)
process {
if($PassThru) {$_}
}
}
1..10|PassTest -PassThru
Run Code Online (Sandbox Code Playgroud)
这是在cmdlet上使用函数的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
Run Code Online (Sandbox Code Playgroud)
请查看Get-Help about_CommonParameters更多信息.
| 归档时间: |
|
| 查看次数: |
1829 次 |
| 最近记录: |