Question Variable dans une variable

Plus d'informations
il y a 15 ans 2 mois #9217 par Besançon Ludovic
Bonjour,

Je ne me rappelle plus comment s'appelle la fonctionnalité et du coup ne retrouve pas comment on l'utilise !

Je voudais mettre une variable dans une variable.
$myA = \"blabla $myB\"
$myB = 123
$myA # devrait m'afficher blabla 123
$myB = 'Zer'
$myA # devrait m'afficher blabla Zer

Comment faire ?
Evidemment c'est dans un contexte autre et trop long à expliquer que je veux mettre en oeuvre cette technique ... Et les fait de définir $myB avant $myA n'est pas souhaité.

Merci de votre aide.

Ludovic.

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

Plus d'informations
il y a 15 ans 2 mois #9219 par xyz
Réponse de xyz sur le sujet Re:Variable dans une variable
De prime abord, sans forcer à chaque modification l'expansion via ExpandString() je ne pense pas que cela soit possible :
[code:1]
#Simple quote
$myA = 'blabla $myB'
$myB = 123
$ExecutionContext.InvokeCommand.ExpandString($myA)
#Affiche : blabla 123
$myB = 'zer'
$ExecutionContext.InvokeCommand.ExpandString($myA)
#Affiche : blabla Zer
[/code:1]
Mais faut creuser le sujet...

Tutoriels PowerShell

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

Plus d'informations
il y a 15 ans 2 mois #9220 par Richard Lazaro
Je dirais la même chose que Laurent.
J'ai eu à faire à ce problème et je pense avoir retourné le problème dans tout les sens pour en revenir à la solution proposé par Laurent.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

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

Plus d'informations
il y a 15 ans 2 mois #9223 par xyz
Réponse de xyz sur le sujet Re:Variable dans une variable
Richard Lazaro écrit:

J'ai eu à faire à ce problème et je pense avoir retourné le problème dans tout les sens pour en revenir à la solution proposé par Laurent.

Effectivement, nativement cela semble bouché.
Je dis peut être n'importe quoi, mais une classe C# permettant une expansion automatique serait-elle une solution?
Un exemple dans un genre différent .

Sinon, une autre approche, sans savoir, à cette heure, si c'est une solution ou un problème potentiel ;)
[code:1]
$myA = New-object PsObject -property @{text='blabla $myB'}
$myA|Add-Member -Force -MemberType ScriptMethod ToString {
$ExecutionContext.InvokeCommand.ExpandString($this.Text)
}
$myB = 123
\"$Mya\"
#Affiche : blabla 123

$myB = 'zer'
\"$Mya\"
#Affiche : blabla zer

$Mya
#Affiche :
# Text
# ----
# blabla $myB

Write-host \"Ceci est $myA. L'abeille ?\"
#Affiche : Ceci est blabla zer. L'abeille ?

$S='imbriqué'
$myC = New-object PsObject -property @{Text='$S $myA'}
$myC|Add-Member -Force -MemberType ScriptMethod ToString {
$ExecutionContext.InvokeCommand.ExpandString($this.Text)
}
Write-host \"Ceci est $myC.\"
#Affiche : Ceci est imbriqué blabla zer.

$myA.Text='Texte $myB'
$myB = 'de fin'
$S=''
Write-host \"Ceci est le $myC.\"
#Affiche: Ceci est le Texte de fin.
[/code:1]
Ici la contrainte est d'utiliser uniquement de simples quote lors de la définition du contenu du champ Text.

Tutoriels PowerShell

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

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