Question récupérer le nom de la variable

Plus d'informations
il y a 8 ans 11 mois #19739 par clément
Bonjour à tous.

Je cherche à récupérer le nom des variables, mais je n'y arrive pas.

exemple :
$Mavariable = \"MaValeur\"

je cherche à extraire le nom de la variable \"$Mavariable\" ou \"Mavariable\"


merci ;)

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

Plus d'informations
il y a 8 ans 11 mois #19740 par Laurent Dardenne
Salut,
anonym17 écrit:

Je cherche à récupérer le nom des variables, mais je n'y arrive pas.

Quel est le contexte ?
Et pour quel usage ?

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 11 mois #19752 par clément
merci de ton aide B)

Mon but serai d'automatiser l'ajout des variables voulu dans un runspace.

le plus simple serai que je puisse récupérer le nom de ma variable afin de définir le nom avec la valeur de la variable correspondante

un peu sur le principe :
$Powershell.AddParameter(\"Nom_de_la_variable\", $valeur_de_la_variable)

je ne sais pas si j'ai étais assez clair?

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

Plus d'informations
il y a 8 ans 11 mois #19753 par Laurent Dardenne
Une approche :
[code:1]
#DefaultRunspace
[System.Management.Automation.Runspaces.Runspace]::«»DefaultRunspace.SessionStateProxy.SetVariable
[/code:1]
Couplé à Get-Variable :
[code:1]
$s='10'
(Get-Variable S).Name
#s
(gv S).Value
#10
's','pshome'|gv
#...
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 11 mois #19754 par clément

#DefaultRunspace

[System.Management.Automation.Runspaces.Runspace]::DefaultRunspace.SessionStateProxy.SetVariable

peux-tu m'expliquer le principe de cette commande stp?


$s='10'

(Get-Variable S).Name

#s

(gv S).Value

#10

's','pshome'|gv

#...


j'avais pensé à cette solution, la problématique de ta commande, c'est que tu peux pas automatiser pour plusieurs variables.
tu donne une valeur à ta variable $s
puis dans get-variable tu écris son nom pour justement récupérer son nom.
si encore il était possible de faire un peu de la sorte :
[code:1]
$s = '10'
(get-variable $s).Name
[/code:1]

cela aurai été intéressant.
comprend tu le problème?

merci ;)

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

Plus d'informations
il y a 8 ans 11 mois #19755 par Laurent Dardenne
anonym17 écrit:

peux-tu m'expliquer le principe de cette commande stp?

Elle crée une variable dans l'état de session du runspace.Ici celui par défaut afin d'afficher sa signature.

anonym17 écrit:

Mon but serai d'automatiser l'ajout des variables voulu dans un runspace.

A te lire 'voulu', supposes que tu connais leurs noms, je me trompe ?
Si tu recherches à injecter toutes les variables de l'appelant peut-être faut-il utiliser l'AST ou ceci :
[code:1]
dir variable:* |Where exclude AutomaticVariable #dépend du contexte courant script/job/Workflow
[/code:1]
anonym17 écrit:

puis dans get-variable tu écris son nom pour justement récupérer son nom.

Je ne pense pas qu'un langage quelqu'il soit puisse répondre à la question 'Donne moi'.
'Donne moi' je comprend , mais donne moi quoi ?
C'est sur que cet exemple peut sembler idiot, mais une variable Powerhsell n'est pas qu'un nom et une valeur.
En PS v4 on peut contraindre une variable comme un paramètre de fonction, donc d'injecter une telle variable suppose une autre approche.
Une déclaration statique est aussi possible.
Si on place ces noms de variables dans un tableau, cela à tout de suite plus de sens. cf. le dernier exemple.
anonym17 écrit:

comprends tu le problème?

Non :
[code:1]
$name='10'
$Pointeur='Name'
gv $pointeur
# Name Value
# ----
# name 10
[/code:1]
Précise ce que tu recherches à faire stp.

Tutoriels PowerShell

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

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