Powershell Store variabile în Variabila nu funcționează

voturi
0

Am nevoie de ajutor cu PowerShell, sper cineva poate ajuta.

Vreau să stoca mai multe variabile într-o singură variabilă.

Aici este codul meu:

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

echo $Content

Și asta e de ieșire meu:

echo $Content
 = 1
 = 2
 = 3

Ar trebui să arate astfel:

$Var1 = 1, etc...

Dar fiecare variabilă se îndepărtează. Nu știu de ce. Ar putea cineva vă rugăm să explicați acest lucru? Am nevoie pentru a le stoca în ceva ca un obiect?

Mulțumesc anticipat!

Întrebat 24/10/2019 la 12:00
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

Cea mai rapidă Fix pentru situația dumneavoastră este de a trece la un singur citat aici-string.

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

În general, ghilimele duble în jurul valorii de un șir de caractere mandatează PowerShell pentru a interpola. Ghilimele simple în jurul unui șir spune PowerShell pentru a trata conținutul ca un șir literal. Acest lucru se aplică și aici-siruri de caractere ( @""@și @''@).

# Double Quotes

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

@"
$string
"@
my string

# Single Quotes

'$string'
$string

@'
$string
'@
$string

Atunci când se întâmplă interpolare, variabilele sunt extinse și evaluate. O variabilă este identificată începând cu $caracter până caracter ilegal pentru un nume de variabilă se citește. Observați în exemplul de mai jos, modul de interpolare variabilă se oprește la ..

"$string.length"
my string.length

Puteți utiliza caractere de evacuare sau de alți operatori de interpolare de control în cadrul șiruri dublu citate. Operatorul subexpression $()permite o expresie să fie evaluată înainte de a fi transformată într - un șir de caractere.

"$($string.length)"
9

Caracterul backtick este caracterul de evacuare PowerShell. Acesta poate fi folosit pentru a scăpa $atunci când nu doriți ca acesta să fie tratat ca o variabilă.

"`$string"
$string

Citate de amestecare poate crea anumite gotchas. Dacă vă înconjoară șirul cu ghilimele simple, totul în interior va fi un șir literal , indiferent de utilizarea de caractere de evacuare sau subexpressions.

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

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

În jurul șir de caractere cu ghilimele duble cu interiorul ghilimele simple va trata doar prin spațiul interior ghilimele simple literalmente, deoarece ghilimele exterioare determină modul în care șirul va fi interpretat.

"'$string'"
'my string'

Utilizarea mai multor perechi de ghilimele simple sau perechi de ghilimele duble necesită un tratament special. În această situație unică pentru ghilimele duble, puteți utiliza backtick evadarea sau două "pentru a imprima o singură ".

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

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

Pentru mai multe ghilimele simple, trebuie să utilizați doi , 'deoarece un backtick vor fi tratate literal și nu spune PowerShell pentru a scăpa de nimic.

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

Vă rugăm să referință About_Quoting_Rules pentru documentația oficială.

Publicat 24/10/2019 la 13:25
sursa de către utilizator

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