ConvertFrom-StringData (Microsoft.PowerShell.Utility)
ConvertFrom-StringData
- Modül:
- Microsoft.PowerShell.Utility
Bir veya daha fazla anahtar ve değer çifti içeren bir dizeyi karma tablosuna dönüştürür.
Sözdizimi
ConvertFrom-StringData
[-StringData] <String>
[[-Delimiter] <Char>]
[<CommonParameters>]Tanım
ConvertFrom-StringData cmdlet'i, bir veya daha fazla anahtar ve değer çifti içeren bir dizeyi karma tablosuna dönüştürür. Her anahtar/değer çiftinin ayrı bir satırda olması gerektiğinden, burada-dizeleri genellikle giriş formatı olarak kullanılır. Varsayılan olarak, anahtar değerden eşittir işareti (=) karakteriyle ayrılmalıdır.
ConvertFrom-StringData cmdlet'i, bir komut dosyasının veya işlevin DATA bölümünde kullanılabilecek güvenli bir cmdlet olarak kabul edilir. VERİ bölümünde kullanıldığında dizenin içeriği VERİ bölümünün kurallarına uygun olmalıdır. Daha fazla bilgi için bkz. about_Data_Sections.
ConvertFrom-StringData, geleneksel makine çevirisi araçlarının izin verdiği kaçış karakter dizilerini destekler. Yani cmdlet, PowerShell ters tırnak karakteri (`) yerine Regex.Unescape Yöntemini kullanarak dize verilerindeki ters eğik çizgileri (\) kaçış karakterleri olarak yorumlayabilir. normalde bir komut dosyasındaki bir satırın sonunu işaret eder. Here-string'in içinde backtick karakteri çalışmaz. Ayrıca, sonuçlarınızda gerçek bir ters eğik çizgiyi, önüne bir ters eğik çizgi koyarak (bunun gibi) koruyabilirsiniz: \\. Dosya yollarında yaygın olarak kullanılanlar gibi çıkış yapılmamış ters eğik çizgi karakterleri, sonuçlarınızda yasa dışı kaçış dizileri olarak işlenebilir.
PowerShell 7, Sınırlayıcı parametresini ekler.
Örnekler
Örnek 1: Burada tek tırnaklı bir dizeyi karma tablosuna dönüştürün
Bu örnek, kullanıcı mesajlarının tek tırnaklı bir dizisini karma tablosuna dönüştürür. Tek tırnaklı bir dizede, değişkenlerin yerine değerler konulmaz ve ifadeler değerlendirilmez. ConvertFrom-StringData cmdlet'i, $Here değişkenindeki değeri bir karma tablosuna dönüştürür.
$Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@
ConvertFrom-StringData -StringData $Here
Name Value
---- -----
Msg3 The specified variable does not exist.
Msg2 Credentials are required for this command.
Msg1 The string parameter is required.Örnek 2: Farklı bir sınırlayıcı kullanarak dize verilerini dönüştürme
Bu örnek, sınırlayıcı olarak farklı bir karakter kullanan dize verilerinin nasıl dönüştürüleceğini gösterir. Bu örnekte dize verileri sınırlayıcı olarak dikey çizgi karakterini (|) kullanıyor.
$StringData = @'
color|red
model|coupe
year|1965
condition|mint
'@
$carData = ConvertFrom-StringData -StringData $StringData -Delimiter '|'
$carData
Name Value
---- -----
condition mint
model coupe
color red
year 1965Örnek 3: Yorum içeren bir buradaki-dizgeyi dönüştürün
Bu örnek, bir yorum ve birden çok anahtar/değer çifti içeren bir burada dizesini karma tablosuna dönüştürür.
ConvertFrom-StringData -StringData @'
Name = Disks.ps1
# Category is optional.
Category = Storage
Cost = Free
'@
Name Value
---- -----
Cost Free
Category Storage
Name Disks.ps1StringData parametresinin değeri, burada dizesi içeren bir değişken yerine, burada dizedir. Her iki format da geçerlidir. Here-string, stringlerden biri hakkında bir yorum içerir. ConvertFrom-StringData tek satırlık yorumları yok sayar, ancak # karakteri satırdaki boşluk olmayan ilk karakter olmalıdır. Satırda # karakterinden sonraki tüm karakterler dikkate alınmaz.
Örnek 4: Bir dizeyi karma tablosuna dönüştürme
Bu örnek, normal çift tırnaklı bir dizeyi (buradaki dize değil) bir karma tablosuna dönüştürür ve onu $A değişkenine kaydeder.
$A = ConvertFrom-StringData -StringData "Top = Red `n Bottom = Blue"
$A
Name Value
---- -----
Bottom Blue
Top RedHer anahtar/değer çiftinin ayrı bir satırda olması gerektiği koşulunu karşılamak için dize, çiftleri ayırmak üzere PowerShell yeni satır karakterini (`n) kullanır.
Örnek 5: Bir betiğin VERİ bölümünde ConvertFrom-StringData'yı kullanın
Bu örnek, bir komut dosyasının DATA bölümünde kullanılan ConvertFrom-StringData komutunu gösterir. VERİ bölümünün altındaki ifadeler metni kullanıcıya gösterir.
$TextMsgs = DATA {
ConvertFrom-StringData @'
Text001 = The $Notebook variable contains the name of the user's system notebook.
Text002 = The $MyNotebook variable contains the name of the user's private notebook.
'@
}
$TextMsgs
Name Value
---- -----
Text001 The $Notebook variable contains the name of the user's system notebook.
Text002 The $MyNotebook variable contains the name of the user's private notebook.Metin değişken adları içerdiğinden, değişkenlerin tam anlamıyla yorumlanması ve genişletilmemesi için tek tırnaklı bir dize içine alınmalıdır. VERİ bölümünde değişkenlere izin verilmez.
Örnek 6: Bir dizeyi iletmek için ardışık düzen operatörünü kullanın
Bu örnek, ConvertFrom-StringData'ya bir dize göndermek için bir ardışık düzen operatörünü (|) kullanabileceğinizi gösterir. $Here değişkeninin değeri ConvertFrom-StringData'ya aktarılır ve sonuç da $Hash değişkenine aktarılır.
$Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@
$Hash = $Here | ConvertFrom-StringData
$Hash
Name Value
---- -----
Msg3 The specified variable does not exist.
Msg2 Credentials are required for this command.
Msg1 The string parameter is required.Örnek 7: Yeni satırlar eklemek ve karakterleri döndürmek için kaçış karakterlerini kullanın
Bu örnek, kaynak verilerde yeni satırlar oluşturmak ve karakterleri döndürmek için kaçış karakterlerinin kullanımını gösterir. \n kaçış dizisi, elde edilen karma tablosundaki bir ad veya öğeyle ilişkili bir metin bloğu içinde yeni satırlar oluşturmak için kullanılır.
ConvertFrom-StringData @"
Vincentio = Heaven doth with us as we with torches do,\nNot light them for themselves; for if our virtues\nDid not go forth of us, 'twere all alike\nAs if we had them not.
Angelo = Let there be some more test made of my metal,\nBefore so noble and so great a figure\nBe stamp'd upon it.
"@ | Format-List
Name : Angelo
Value : Let there be some more test made of my metal,
Before so noble and so great a figure
Be stamp'd upon it.
Name : Vincentio
Value : Heaven doth with us as we with torches do,
Not light them for themselves; for if our virtues
Did not go forth of us, 'twere all alike
As if we had them not.Örnek 8: Bir dosya yolunu doğru şekilde oluşturmak için ters eğik çizgi kaçış karakterini kullanın
Bu örnek, bir dosya yolunun sonuçtaki ConvertFrom-StringData karma tablosunda doğru şekilde oluşturulmasına izin vermek için dize verilerinde ters eğik çizgi kaçış karakterinin nasıl kullanılacağını gösterir. Çift ters eğik çizgi, karma tablo çıktısında değişmez ters eğik çizgi karakterlerinin doğru şekilde işlenmesini sağlar.
ConvertFrom-StringData "Message=Look in c:\\Windows\\System32"
Name Value
---- -----
Message Look in c:\Windows\System32Parametreler
-Delimiter
Dönüştürülmekte olan dizedeki anahtarı değer verilerinden ayırmak için kullanılan karakter. Varsayılan sınırlayıcı eşittir işareti (=) karakteridir. Bu parametre PowerShell 7'ye eklenmiştir.
- Tip :
Karakter
- Konum:
1
- Varsayılan değer:
'='
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-StringData
Dönüştürülecek dizeyi belirtir. Bu parametreyi kullanabilir veya ConvertFrom-StringData'ya bir dize yönlendirebilirsiniz. Parametre adı isteğe bağlıdır.
Bu parametrenin değeri, bir veya daha fazla anahtar/değer çifti içeren bir dize olmalıdır. Her anahtar/değer çifti ayrı bir satırda olmalıdır veya her çift yeni satır karakterleriyle (`n) ayrılmalıdır.
Dizeye açıklamalar ekleyebilirsiniz ancak yorumlar bir anahtar/değer çiftiyle aynı satırda olamaz. ConvertFrom-StringData tek satırlık yorumları yok sayar. # karakteri satırdaki boşluk olmayan ilk karakter olmalıdır. Satırda # karakterinden sonraki tüm karakterler dikkate alınmaz. Yorumlar karma tablosuna dahil edilmez.
Here-string, bir veya daha fazla satırdan oluşan bir dizedir. Buradaki dize içindeki tırnak işaretleri, dize verilerinin bir parçası olarak tam anlamıyla yorumlanır. Daha fazla bilgi için bkz. about_Quoting_Rules.
- Tip :
String
- Konum:
0
- Varsayılan değer:
None
- Gerekli:
True
- Boru hattı girişini kabul edin:
True
- Joker karakterleri kabul et:
False
Girişler
Dize
Bu cmdlet'e anahtar/değer çifti içeren bir dize aktarabilirsiniz.
Çıkışlar
Hashtable
Bu cmdlet, anahtar/değer çiftlerinden oluşturduğu karma tablosunu döndürür.
Notlar
Buradaki dize, tırnak işaretlerinin kelimenin tam anlamıyla yorumlandığı bir veya daha fazla satırdan oluşan bir dizedir.
Bu cmdlet, kullanıcı mesajlarını birden fazla konuşulan dilde görüntüleyen komut dosyalarında yararlı olabilir. Kaynak dosyalarındaki gibi metin dizelerini koddan ayırmak ve metin dizelerini çeviri araçlarında kullanmak üzere biçimlendirmek için sözlük stili karma tablolarını kullanabilirsiniz.