2017-08-16 5 views
0

コマンドレット内で、コマンドレットが呼び出されたエイリアスを見つける方法を知っていますか?私はこれを試してみましたが、それは動作しません:コマンドレット内で、そのコマンドレットが呼び出されたエイリアスを調べるにはどうすればよいですか?

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

大きな問題/投稿ですが、 'Write-Verbose'を上書きすることは悪いと思われます –

+0

このクエストnは友人から来て、私たちは今実際にその議論をしています。彼のユースケースは、ANSIカラーコードを出力するためのmonkey patch write- *です。 –

+1

[フィルタリングの出力](https://stackoverflow.com/a/41476196/1630171)の方が良いでしょうか? –