2017-08-16 44 views
0

您是否知道如何從cmdlet中找到該cmdlet被調用的別名?我已經試過這一點,但它不工作:如何從cmdlet中找出該cmdlet被調用的別名?

Function Write-Verbose { 
    [CmdletBinding()] 
    param($val) 
    $CommandName = $Test.MyInvocation.line -replace '(^.+?).*','$1' 
    Write-host "$val Called with '$CommandName' alias" 

} 
Set-Alias WB Write-Verbose -Scope global 
WB "goodbye" 

回答

0

您可以從$MyInvocation.InvocatioName得到這樣的:

Function Write-Verbose { 
    [CmdletBinding()] 
    param($val) 

    Write-host "$val Called with $($MyInvocation.InvocationName) alias"  
} 
Set-Alias WB Write-Verbose -Scope global 
WB "goodbye" 

返回:WB別名叫做

再見

+0

偉大的問題/職位,但重寫'寫 - 詳細'似乎不明智 –

+0

這個問題n來自一位朋友,我們現在正在進行這場辯論。他的用例是猴子補丁write- *輸出ANSI顏色代碼,所以jenkins彩色輸出的作品。 –

+1

會不會[過濾輸出](https://stackoverflow.com/a/41476196/1630171)是一個更好的方法? –

相關問題