Question
Variable dans une variable
- Besançon Ludovic
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 44
- Remerciements reçus 0
il y a 15 ans 2 mois #9217
par Besançon Ludovic
Variable dans une variable a été créé 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.
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.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 15 ans 2 mois #9219
par xyz
Tutoriels PowerShell
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...
[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.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 2 mois #9220
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Variable dans une variable
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.
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.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 15 ans 2 mois #9223
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Variable dans une variable
Richard Lazaro écrit:
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.
Effectivement, nativement cela semble bouché.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.
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Variable dans une variable