如何在PowerShell中实现“-Help”开关?

问题描述 投票:1回答:1

我有一段时间是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>插入什么?

powershell
1个回答
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尚未被调用函数名称,我会让你失去一些头发(失败的.)!

© www.soinside.com 2019 - 2024. All rights reserved.