PowerShell memorizzare le variabili nella variabile non funziona

voti
0

Ho bisogno di aiuto con PowerShell, spero che qualcuno può aiutare.

Voglio memorizzare più variabili in una singola variabile.

Ecco il mio codice:

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

echo $Content

E questo è la mia uscita:

echo $Content
 = 1
 = 2
 = 3

Dovrebbe sembrare come questo:

$Var1 = 1, etc...

Ma ogni variabile viene rimosso. Non so perché. qualcuno potrebbe spiegare questo? Devo memorizzarli in qualcosa come un oggetto?

Grazie in anticipo!

È pubblicato 24/10/2019 alle 12:00
fonte dall'utente
In altre lingue...                            


1 risposte

voti
0

La soluzione più rapida per la vostra situazione è quello di passare ad una stringa here apici singoli.

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

In generale, le doppie virgolette attorno a una stringa di istruire PowerShell interpolare. Virgolette singole intorno a una stringa dice PowerShell per trattare il contenuto come una stringa letterale. Questo vale anche per stringhe here ( @""@e @''@).

# Double Quotes

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

@"
$string
"@
my string

# Single Quotes

'$string'
$string

@'
$string
'@
$string

Quando interpolazione accade, le variabili vengono espanse e valutati. Una variabile è identificata iniziando con il $carattere finché viene letto un carattere non valido per un nome variabile. Si noti che nell'esempio di seguito, come l'interpolazione variabile ferma al ..

"$string.length"
my string.length

È possibile utilizzare caratteri di escape o altri operatori per l'interpolazione di controllo all'interno delle stringhe doppia citati. L'operatore subexpression $()permette un'espressione da valutare prima di essere convertito in una stringa.

"$($string.length)"
9

Il carattere di apice inverso è il carattere di escape PowerShell. Può essere utilizzato per fuggire $quando non si desidera che venga trattata come una variabile.

"`$string"
$string

Citazioni di miscelazione in grado di creare alcuni grattacapi. Se inserisci una stringa con virgolette singole, tutto all'interno sarà una stringa letterale indipendentemente utilizzando caratteri di escape o sottoespressioni.

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

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

Che circonda la stringa con virgolette doppie con all'interno apici singoli sarà solo trattare citazioni dagli all'interno singole letteralmente, perché le citazioni esterne determinano come verrà interpretata la stringa.

"'$string'"
'my string'

L'utilizzo di più coppie apice singolo o coppie di doppi apici richiede un trattamento speciale. In questa situazione unica per le doppie virgolette, è possibile utilizzare il backtick fuga o un due "per stampare una singola ".

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

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

Per più virgolette singole, è necessario utilizzare due 'perché un apice inverso saranno trattati letteralmente e non dire PowerShell per sfuggire nulla.

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

Si prega di riferimento about_Quoting_Rules per la documentazione ufficiale.

Risposto il 24/10/2019 a 13:25
fonte dall'utente

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