如何实施' -Help'在PowerShell中切换?

时间:2015-11-25 22:00:21

标签: powershell

我有一段时间的PowerShell用户,但我不确定如何为我的PoSh脚本实现-Help开关。

脚本已经有一个内置的帮助,可以使用Get-Help myscript.ps1

来检索

脚本有多个参数,需要记录。我想在脚本本身上添加另一个参数-Help来调用Get-Help

我想提供一个额外的界面来获取帮助页面。在Linux系统上使用-h / --help替代man <cmd>也很常见。

我已经用功能对它进行了测试,但函数的名称是固定且已知的;脚本可以重命名...

#
# .SYNOPSIS
# help text
#

[CmdLetBinding()]
param(
  [switch]$Help = $false
)

if ($Help)
{ Get-Help  <me>
  return
}

Write-Host "other statements"

我应该为<me>插入什么内容?

1 个答案:

答案 0 :(得分:2)

我认为你可以在这里充分利用$MYINVOCATION.InvocationName

function Test-Function {
    Param([Switch]
        $Help = $false
    )
    if($Help) {
        "help mode : function name is $($MYINVOCATION.InvocationName)"
    } else {
        "normal process"
    }
}

Test-Function -Help

Get-Help尚未使用函数名调用,我会让你失去一些头发(.失败)!