함수 내에서 PowerShell 함수 이름을 검색하는 방법이 있습니까?
예:
function Foo {
[string]$functionName = commandRetrievesFoo
Write-Host "This function is called $functionName"
}
출력:
PS > Foo
This function is called foo
사용할 수 있습니다.$MyInvocation
현재 실행 중인 작업에 대한 유용한 정보가 포함되어 있습니다.
function foo {
'This function is called {0}.' -f $MyInvocation.MyCommand
}
함수에 있을 때는 자동 변수 $PSCmdLet에 액세스할 수 있습니다.
이 변수는 현재 실행 중인 cmdlet에 대한 많은 정보를 포함하는 매우 유용한 변수입니다.
우리의 시나리오에서 우리는 일부 재귀에 대한 현재 함수의 이름과 정의를 원했습니다.함수가 PowerShell 모듈 내에 있기 때문에 $MyInvocation이 null이었습니다.
그러나 PSCmdLet 개체에는 필요한 모든 정보를 포함하고 시나리오를 실행할 수 있는 "MyInvocation" 속성이 있습니다.
예: $PSCmdlet.나의 초대.제 명령입니다.Name = $PSCmdlet 함수의 이름입니다.나의 초대.제 명령입니다.정의 = 함수의 정의
만만하다.
function Get-FunctionName ([int]$StackNumber = 1) {
return [string]$(Get-PSCallStack)[$StackNumber].FunctionName
}
기본적으로 예제의 Get-FunctionName은 호출한 함수의 이름을 가져옵니다.
Function get-foo () {
Get-FunctionName
}
get-foo
#Reutrns 'get-foo'
StackNumber 매개 변수를 늘리면 다음 함수 호출의 이름을 가져옵니다.
Function get-foo () {
Get-FunctionName -StackNumber 2
}
Function get-Bar () {
get-foo
}
get-Bar
#Reutrns 'get-Bar'
그Get-PSCallStack
옵션은 한 번만 작동하는 것 같습니다. 스크립트 본문에서 함수를 호출할 때 처음에는 스크립트 이름을 검색하지만 두 번째에는 텍스트 " "를 검색합니다.
언급URL : https://stackoverflow.com/questions/3689543/is-there-a-way-to-retrieve-a-powershell-function-name-from-within-a-function
'programing' 카테고리의 다른 글
스프링 3 mvc를 GWT와 통합한 경험이 있습니까? (0) | 2023.08.25 |
---|---|
Powershell에서 .exe 실행의 모든 출력을 파이프로 연결하는 방법은 무엇입니까? (0) | 2023.08.25 |
jQuery를 사용하여 첫 번째 부모 DIV를 선택하는 방법은 무엇입니까? (0) | 2023.08.25 |
원격 시스템에서 python을 사용하여 mariadb 연결 (0) | 2023.08.25 |
jQuery AJAX가 던지는 302 오류 코드는 무엇입니까? (0) | 2023.08.25 |