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.ps1

StringData 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              Red

Her 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\System32

Parametreler

-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.

İlgili makaleler