Değişken içine PowerShell Mağaza Değişkenler çalışmıyor

oy
0

Ben birileri yardımcı olabilir umut, Powershell ile yardıma ihtiyacım var.

Ben tek değişkene birden Değişkenler saklamak istiyorum.

İşte benim kodudur:

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

echo $Content

Ve benim çıkışını şu:

echo $Content
 = 1
 = 2
 = 3

Bu gibi görünmelidir:

$Var1 = 1, etc...

Ancak her değişken kaldırılır. Ben neden bilmiyorum. Biri bu açıklayabilir misiniz? i bir nesne gibi bir şey içine saklamak gerekiyor mu?

Şimdiden teşekkürler!

Oluştur 24/10/2019 saat 12:00
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
0

durumunuza en hızlı düzeltme tek alıntılanan burada-string geçmek etmektir.

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

Genel olarak, PowerShell talimat bir dize sonuna çift tırnak dayalı olarak çalışır. Bir dize etrafında tek tırnak bir dize olarak içerik tedavisi için PowerShell söyler. Bu aynı zamanda burada-dizeleri (uygulanır @""@ve @''@).

# Double Quotes

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

@"
$string
"@
my string

# Single Quotes

'$string'
$string

@'
$string
'@
$string

İnterpolasyon gerçekleştiğinde, değişkenler genişledi ve değerlendirilir. Bir değişken ile başlayan belirlenen edilir $bir değişken adı için yasadışı karakter okunana kadar karakteri. Aşağıdaki örnekte Bildirimi, değişken yorumlanır durur nasıl ..

"$string.length"
my string.length

Sen çift tırnaklı dizge içinde kontrol interpolasyonuna çıkış karakterleri veya diğer operatörleri kullanabilirsiniz. Subexpression operatörü $()bir dizeye dönüştürülür önce bir ifade değerlendirilmesine olanak tanır.

"$($string.length)"
9

Ters tırnak karakteri PowerShell kaçış karakteridir. Kaçmak için kullanılabilecek $bunu bir değişken olarak tedavi edilecek istemediğinizde.

"`$string"
$string

Karıştırma tırnak belli FRİKİKLERİNDEN oluşturabilir. Eğer tek tırnak ile dize içine alırsanız, her şey içinde bir dizgi değişmezi olacak bakılmaksızın çıkış karakterleri veya alt ifadeler kullanmanın.

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

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

Tek tırnak sadece tam anlamıyla iç tek tırnak tedavi edecek içeride ile çift tırnak ile dize Etraftaki dış tırnak dize yorumlanacaktır belirlemek çünkü.

"'$string'"
'my string'

Birden tek tırnak çiftlerini veya çift tırnak çifti kullanarak özel muamele gerektirir. Çift tırnak için bu eşsiz durumda, ters tırnak kaçış veya iki kullanabilirsiniz "tek yazdırmak için ".

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

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

Birden tek tırnak için, ikisini kullanmalıdır 'bir ters tırnak anlamıyla ele alınacaktır çünkü hiçbir şey kaçmak için PowerShell söyleme.

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

Referans Lütfen About_Quoting_Rules resmi belgeler için.

Cevap 24/10/2019 saat 13:25
kaynak kullanıcı

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