我希望Get-Help默认显示-Detailed
信息,并有分页输出。我编写了一个名为“帮助”的函数来执行此操作,但它不处理cmdlet之外的参数以获取帮助。我希望splatting可以传递额外的参数,但事实并非如此。这是我天真的尝试:
function Help { Get-Help -Detailed @args | less}
如果您只使用一个参数(例如help Get-ChildItem
)调用它,它可以正常工作,但如果您使用更多内容调用,例如help Get-ChildItem -Parameter Path
则会出错:
Get-Help : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:17
+ function Help { Get-Help -Detailed @args | less}
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Help], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.GetHelpCommand
有谁知道是否有办法做到这一点并不是非常难看?
答案 0 :(得分:1)
假设您使用PowerShell V3 +,您可以这样做:
$PSDefaultParameterValues['Get-Help:Detailed']=$true
并使用内置Help
功能,该功能具有屏幕分页功能(使用Less而不是More进行分页,运行New-Alias more less
)。
答案 1 :(得分:1)
你想要的是Proxy Function。
通常,这需要在代理功能中重新创建原始命令中的所有参数。我没有使用它,但是这个script发布在脚本存储库中,它应该有助于减少它的繁琐。