Powershell Store variabelen in de variabele niet werkt

stemmen
0

Ik heb hulp nodig met Powershell, ik hoop dat iemand kan helpen.

Ik wil meerdere variabelen op te slaan in een enkele variabele.

Hier is mijn code:

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

echo $Content

En dat is mijn output:

echo $Content
 = 1
 = 2
 = 3

Het ziet er als volgt uit:

$Var1 = 1, etc...

Maar elke variabele wordt verwijderd. Ik weet niet waarom. Kan iemand alsjeblieft dit verklaren? Moet ik ze op te slaan in iets als een object?

Bij voorbaat bedankt!

De vraag is gesteld op 24/10/2019 om 12:00
bron van user
In andere talen...                            


1 antwoorden

stemmen
0

De snelste oplossing voor uw situatie is om over te schakelen naar een single-beursgenoteerde hier-string.

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

In het algemeen dubbele aanhalingstekens om een string te instrueren PowerShell te interpoleren. Enkele aanhalingstekens rond een string vertelt PowerShell om de inhoud als een letterlijke tekenreeks te behandelen. Dit geldt ook voor de hier-strings ( @""@en @''@).

# Double Quotes

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

@"
$string
"@
my string

# Single Quotes

'$string'
$string

@'
$string
'@
$string

Wanneer interpolatie gebeurt, worden variabelen uitgebreid en geëvalueerd. Een variabele wordt geïdentificeerd te beginnen met het $karakter totdat een ongeldig teken voor een variabele naam wordt gelezen. Merk op dat in het onderstaande voorbeeld, hoe de variabele vervangen stopt bij het ..

"$string.length"
my string.length

U kunt escape-tekens of andere operators gebruiken om de controle van interpolatie tussen dubbele aanhalingstekens. De sub-expressie operator $()kan een uitdrukking worden geëvalueerd voordat het wordt omgezet in een string.

"$($string.length)"
9

De backtick karakter is de PowerShell escape-teken. Het kan worden gebruikt om te ontsnappen $als je niet wilt dat het wordt behandeld als een variabele.

"`$string"
$string

Het mengen van koersen kunnen bepaalde gotchas creëren. Als je je snaar omringen met enkele aanhalingstekens, zal alles in een letterlijke tekenreeks zijn , ongeacht het gebruik van escape-tekens of subuitdrukkingen.

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

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

Rondom uw string met dubbele aanhalingstekens met enkele aanhalingstekens binnen enkele aanhalingstekens gewoon letterlijk zal behandelen, omdat de buitenste citaten bepalen hoe de string zal worden geïnterpreteerd.

"'$string'"
'my string'

Het gebruik van meerdere enkele quote paren of dubbele aanhalingstekens paren vereist een speciale behandeling. In deze unieke situatie voor dubbele aanhalingstekens, kunt u de backtick ontsnapping of een twee gebruiken "om een enkele afdrukken ".

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

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

Voor meerdere enkele aanhalingstekens, moet u gebruik maken van twee ', omdat een backtick letterlijk zal worden behandeld en PowerShell niet vertellen om iets te ontsnappen.

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

Gelieve referentie About_Quoting_Rules voor de officiële documentatie.

antwoordde op 24/10/2019 om 13:25
bron van user

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