2015-11-25 38 views
1

我是PowerShell用户一段时间,但我不知道如何为我的PoSh脚本实现-Help开关。如何在PowerShell中实现'-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

您不需要添加-Help参数。只需使用[基于评论的帮助](https://technet.microsoft.com/en-us/library/hh847834.aspx)。 –

+0

请再次阅读我的问题。该脚本已经有基于评论的帮助。我不想重新编辑/复制帮助内容。我想在用户用'-Help'调用脚本时显示它。 – Paebbels

+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尚未与函数名称叫,我会让你失去一些这方面的头发(与.失败)!