2015-11-25 41 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尚未與函數名稱叫,我會讓你失去一些這方面的頭髮(與.失敗)!