Я запускаю некоторый код и пытаюсь регистрировать определенные вещи. В журнале я хотел бы записать текущую функцию и имя файла, где эта функция существует.Как определить имя исполняемой функции
Например мой файл «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