Variables Powershell magasin dans la variable ne fonctionne pas

voix
0

J'ai besoin d'aide avec Powershell, j'espère que quelqu'un peut vous aider.

Je veux stocker plusieurs variables en une seule variable.

Voici mon code:

$Content = @
$Var1 = 1
$Var2 = 2
$Var3 = 3
@   

echo $Content

Et c'est ma sortie:

echo $Content
 = 1
 = 2
 = 3

Ça devrait ressembler à ça:

$Var1 = 1, etc...

Mais toutes les variables se retire. Je ne sais pas pourquoi. Quelqu'un pourrait-il s'il vous plaît expliquer cela? Ai-je besoin de les stocker dans quelque chose comme un objet?

Merci d'avance!

Créé 24/10/2019 à 12:00
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Le plus rapide correctif pour votre situation est de passer à une seule cité ici-chaîne.

$Content = @'
$Var1 = "1"
$Var2 = "2"
$Var3 = "3"
'@ 

En général, les guillemets doubles autour d' une chaîne Instruire PowerShell à interpoler. Les guillemets simples autour d' une chaîne indique PowerShell pour traiter le contenu comme une chaîne littérale. Cela vaut également pour ici-cordes ( @""@et @''@).

# Double Quotes

$string = "my string"
"$string"
my string

@"
$string
"@
my string

# Single Quotes

'$string'
$string

@'
$string
'@
$string

Lorsque l' interpolation se produit, les variables sont et évaluées. Une variable est identifiée en commençant par le $caractère jusqu'à ce qu'un caractère illégal pour un nom de variable est lu. Avis dans l'exemple ci - dessous, comment arrête l'interpolation variable au ..

"$string.length"
my string.length

Vous pouvez utiliser des caractères d'échappement ou d' autres opérateurs d'interpolation de contrôle dans les chaînes entre. L'opérateur de sous - expression $()permet une expression à évaluer avant d' être transformé en une chaîne.

"$($string.length)"
9

Le caractère backtick est le caractère d'échappement PowerShell. Il peut être utilisé pour échapper $quand vous ne voulez pas qu'il soit traité comme une variable.

"`$string"
$string

Citations de mélange peuvent créer certains gotchas. Si vous entourez votre chaîne avec des guillemets simples, tout à l' intérieur sera une chaîne de caractères quel que soit l' utilisation des caractères d'échappement ou les sous - expressions.

'"$($string.length)"'
"$($string.length)"

'"`$string"'
"`$string"

Autour de votre chaîne avec des guillemets doubles avec à l'intérieur des guillemets simples vont simplement traiter l'intérieur des guillemets simples littéralement parce que les guillemets externes déterminent la façon dont la chaîne sera interprétée.

"'$string'"
'my string'

L' utilisation de plusieurs paires de guillemets simples ou doubles paires de devis nécessite un traitement spécial. Dans cette situation unique pour les guillemets doubles, vous pouvez utiliser l'évasion backtick ou deux "pour imprimer un seul ".

"""$string"""
"my string"

"`"$string`""
"my string"

Pour plusieurs apostrophes, vous devez utiliser deux 'parce qu'un backtick sera traité littéralement et non dire PowerShell pour échapper à quoi que ce soit.

'''$string'''
'$string'

Veuillez vous référer about_Quoting_Rules pour les documents officiels.

Créé 24/10/2019 à 13:25
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more