1
私はいくつかのコードを実行していて、特定のものをログに記録しようとしています。ログには、現在の関数とその関数が存在するファイル名を記録したいと思います。実行中の関数のファイル名を確認する方法
例えば私の「Main.ps1」ファイルには、次のようになります。
. .\UtilityFunctions.ps1
function Main-Routine
{
utility-method
}
Main-Routine
マイUtilityFunctions.ps1は次のようになります。
function utility-method
{
"{0}.{1}" -f $MyInvocation.ScriptName, $MyInvocation.MyCommand
}
次のようにこれは、コンソールに出力します:
mypathで \ Main.ps1.utility-方法
私はそれが代わりにこれを印刷したい:
mypathで \ UtilityFunctions.ps1.utility-方法
$ MyInvocationを呼び出すと、常にではなく、ファイル名よりも、起動時に呼び出されるファイル名を返すようです関数が存在する。自分の機能を含むファイル名を取得するにはどうすればよいですか?私はあなたが探しているものと信じて
完璧、ありがとう。私は以下のように変更して汎用的なものにしました:(Get-Command $ MyInvocation.MyCommand).ScriptBlock.File – Paul