PowerShell 自作関数の中で自分自身の名前(関数名)を取得する

EXCEL

自作関数の中で、自分自身の名前(関数名)を取得する例

関数名は、$myInvocation.MyCommand.name に格納されている。

function TestFunction
{
    $script_name = $myInvocation.MyCommand.name
    Write-Host "InSide Function Example name=" $myInvocation.MyCommand.name " ScriptName="  $myInvocation.ScriptName
}


#関数の外で実行すると、nameにファイル名が出力、ScriptNameは空

Write-Host "OutSide Function Example name=" $myInvocation.MyCommand.name " ScriptName="  $myInvocation.ScriptName

#関数実行
TestFunction

Write-Host "For Background Job Start"

#なお別プロセスで実行した場合
$ScriptBlock = (Get-Command TestFunction).ScriptBlock
$job  =  Start-Job -ScriptBlock $ScriptBlock
Wait-Job -Job $job

$results = Receive-Job -job $Job
#結果は、nameも、ScriptNameも空
$results
ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました