2016-09-22 2 views
1

일부 코드를 실행하고 특정 작업을 기록하려고합니다. 로그에서 현재 함수와 그 함수가있는 파일 이름을 기록하고 싶습니다.실행중인 함수의 파일 이름을 확인하는 방법

function utility-method 
{ 
    "{0}.{1}" -f $MyInvocation.ScriptName, $MyInvocation.MyCommand 
} 

다음과 같이 콘솔에 출력합니다

. .\UtilityFunctions.ps1 

function Main-Routine 
{ 
    utility-method 
} 

Main-Routine 

내 UtilityFunctions.ps1은 다음과 유사합니다 예를 들어

내 "Main.ps1"파일은 다음과 유사합니다 : Main.ps1.utility-방법 \

MYPATH

나는 대신이를 인쇄하려면 :

MYPATH을 UtilityFunctions.ps1.utility-방법 \

이 호출 $의 MyInvocation는 항상 시작할 때 호출되는 파일 이름이 아닌 파일 이름을 반환하는 것 같다

함수가 존재합니다. 내 함수가 들어있는 파일 이름은 어떻게 얻습니까?

답변

3

나는 당신이 모듈의 기능으로, 도트 소스 스크립트에 정의 된 기능을 모두 작동해야 Get-Command

(Get-Command Utility-Method).ScriptBlock.File 

에 의해 반환 된 객체에 저장되어 찾고있는 것을 믿습니다.

+1

완벽한, 감사합니다. 다음과 같이 수정되어 일반화되었습니다. (Get-Command $ MyInvocation.MyCommand) .ScriptBlock.File – Paul

관련 문제