$args只返回可选参数。我如何获得所有函数参数?
cmssoen21#
$PSBoundParameters获取所有与哈希表中的绑定值一起沿着的参数,它不会获取可选的/额外的参数。这就是$args的作用。AFAICT获得你想要的东西的唯一方法是合并:
$allArgs = $PsBoundParameters.Values + $args
字符串
aiazj4mn2#
$args返回任何 * 未声明的 * 参数,而不是可选参数。所以不要声明参数。在PowerShell v2中,您可以使用$PSBoundParameters以结构化的方式获取所有参数。
rsl1atfo3#
$MyInvocation.Line也是一个很好的知道。但这也包括实际的指挥。
$MyInvocation.Line
qv7cva1a4#
动态检查和显示函数参数的有用方法
Write-Host "Parameters and Default Values:" foreach ($param in $MyInvocation.MyCommand.Parameters.keys) { Write-Host "${param}: $(Get-Variable -Name $param -ValueOnly -ErrorAction SilentlyContinue)" }
字符串和仅带值的参数
Write-Host "Parameters and Default Values:" foreach ($param in $MyInvocation.MyCommand.Parameters.keys) { $value = Get-Variable -Name $param -ValueOnly -ErrorAction SilentlyContinue if (-not $null -eq [string]$value) { Write-Host "${param}: $value" } }
型
4条答案
按热度按时间cmssoen21#
$PSBoundParameters获取所有与哈希表中的绑定值一起沿着的参数,它不会获取可选的/额外的参数。这就是$args的作用。AFAICT获得你想要的东西的唯一方法是合并:
字符串
aiazj4mn2#
$args返回任何 * 未声明的 * 参数,而不是可选参数。所以不要声明参数。
在PowerShell v2中,您可以使用$PSBoundParameters以结构化的方式获取所有参数。
rsl1atfo3#
$MyInvocation.Line
也是一个很好的知道。但这也包括实际的指挥。
qv7cva1a4#
动态检查和显示函数参数的有用方法
字符串
和仅带值的参数
型