Question Connaître le nom de la fonction utilisée

Plus d'informations
il y a 13 ans 6 mois #12631 par Jinjo
Le code suivant
[code:1]
Function Mere {
Write-Host \"Fonction courante : \"$MyInvocation.MyCommand
Enfant #Appel de la fonction Enfant
}

Function Enfant {
Write-Host \"Fonction courante : \"$MyInvocation.MyCommand
Write-Host \"Fonction mère : ???\"
}

#Main
Mere #Appel de la fonction Mere
[/code:1]

retourne le résultat suivant
[code:1]Fonction courante : Parent
Fonction courante : Enfant
Fonction mère : ???[/code:1]

J'aimerais qu'il retourne le nom de la fonction appelant la fonction Enfant, soit
le résultat suivant
[code:1]Fonction courante : Parent
Fonction courante : Enfant
Fonction parente : Parent[/code:1]

Est-ce possible sans passer la variable $MyInvocation.MyCommand en paramètre de la fonction Enfant ?

Merci d'avance pour votre aide.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 6 mois #12632 par Laurent Dardenne
Salut,
Jinjo écrit:

Est-ce possible sans passer la variable $MyInvocation.MyCommand en paramètre de la fonction Enfant ?

je pense, voir ce code :
poshcode.org/3470
et le post associé :
huddledmasses.org/what-scope-am-i-in/

Voi aussi :
blogs.msdn.com/b/powershell/archive/2007...pe-of-variables.aspx

Autre approche plus simple (pour PS v1 et v2) :
projets.developpez.com/projects/add-lib/...ackageDebugTools.ps1
[code:1]
Write-Debug \"Pile d'appel : $(ParseStack $(Get-CallStack))\"
[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 6 mois #12635 par Jinjo
Merci Laurent pour toutes ces sources.
Je m'en suis sorti avec l'utilisation du Cmdlet Get-PSCallStack.

Le code :
[code:1]
Function Mere {
Write-Host \"Fonction courante : \"$MyInvocation.MyCommand
Enfant #Appel de la fonction Enfant
}

Function Enfant {
Write-Host \"Fonction courante : \"$MyInvocation.MyCommand
Write-Host \"Fonction mère : \"((Get-PSCallStack)[1]).command
}

#Main
Mere #Appel de la fonction Mere
[/code:1]

Retourne :
[code:1]
Fonction courante : Mere
Fonction courante : Enfant
Fonction mère : Mere
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 6 mois #12636 par Laurent Dardenne
Jinjo écrit:

Je m'en suis sorti avec l'utilisation du Cmdlet Get-PSCallStack.

Pour ce cas oui. Mais si tu veux afficher l'intégralité de la pile d'appel, cela demande pas mal d'efforts.
Il manque un cmdlet de formatage des informations renvoyées par Get-PSCallStack.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.055 secondes
Propulsé par Kunena