如何在PowerShell脚本中配置帮助与使用说明?
在PowerShell中实现
--help查看所有参数的核心方法 你的脚本已经通过[CmdletBinding()]启用了高级功能,自带-Debug、-Verbose等通用参数,同时支持PowerShell原生的-?或Get-Help .\foo.ps1查看帮助。要实现类Unix风格的--help触发帮助,核心思路是自定义--help参数并绑定到内置帮助输出逻辑,具体有两种简洁实现方式:
方法1:给原生帮助参数加别名(推荐)
直接在param块中新增带--help别名的开关参数,触发时调用内置帮助输出:
<# test foo.ps1 #> [CmdletBinding()] param( [Switch]$foo, [Switch]$bar, [Alias('--help')] [Switch]$Help ) # 若传入-Help或--help,输出完整帮助后退出 if ($Help) { Get-Help $MyInvocation.MyCommand.Path -Full exit }
执行.\foo.ps1 --help时,会自动输出包含所有自定义参数和通用参数的完整帮助信息,且符合PowerShell参数规范,支持自动补全。
方法2:直接检测输入参数
如果不想新增参数,可通过检测传入的参数列表识别--help:
<# test foo.ps1 #> [CmdletBinding()] param( [Switch]$foo, [Switch]$bar ) # 检测是否传入--help参数 if ($args -contains '--help') { Get-Help $MyInvocation.MyCommand.Path -Full exit }
核心原理说明
通过Get-Help $MyInvocation.MyCommand.Path -Full可以完整调用PowerShell的内置帮助系统,输出脚本的所有参数(包括[CmdletBinding()]带来的通用参数),再通过自定义逻辑将--help映射到该调用即可实现需求。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

