ConvertFrom-StringData
Bir veya daha fazla anahtar ve değer çifti içeren bir dizeyi karma tabloya dönüştürür.
Sözdizimi
ConvertFrom-StringData
[-StringData] <String>
[[-Delimiter] <Char>]
[<CommonParameters>]
Description
cmdlet'i ConvertFrom-StringData
, bir veya daha fazla anahtar ve değer çifti içeren bir dizeyi karma tabloya dönüştürür. Her anahtar-değer çiftinin ayrı bir satırda olması gerektiğinden, giriş biçimi olarak genellikle here-strings kullanılır. Varsayılan olarak, anahtar değerden eşittir işareti (=
) karakteriyle ayrılmalıdır.
ConvertFrom-StringData
Cmdlet, bir betiğin veya işlevin VERİ bölümünde kullanılabilecek güvenli bir cmdlet olarak kabul edilir. DATA bölümünde kullanıldığında, dizenin içeriği DATA 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çış karakteri dizilerini destekler. Diğer bir ifadeyle, cmdlet normalde bir betikteki bir satırın sonuna işaret eden PowerShell backtick karakteri (\
) yerine Regex.Unescape Metodunu kullanarak dize verilerinde ters eğik çizgileri (`
) kaçış karakterleri olarak yorumlayabilir.
Buradaki dizenin içinde, backtick karakteri çalışmaz. Ayrıca, sonuçlarınızda sabit bir ters eğik çizgi korumak için, önceki bir ters eğik çizgiyle bundan kaçabilirsiniz: \\
. Dosya yollarında yaygın olarak kullanılanlar gibi sıralanmamış ters eğik çizgi karakterleri sonuçlarınızda geçersiz kaçış dizileri olarak işlenebilir.
PowerShell 7 Sınırlayıcı parametresini ekler.
Örnekler
Örnek 1: Tek tırnaklı bir here-string'i karma tabloya dönüştürme
Bu örnek, kullanıcı iletilerinin tek tırnaklı bir here-string'ini karma tabloya dönüştürür. Tek tırnaklı bir dizede, değerler değişkenler yerine geçmez ve ifadeler değerlendirilmez.
cmdlet'i ConvertFrom-StringData
değişkendeki $Here
değeri karma tabloya 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 örnekte, sınırlayıcı olarak farklı bir karakter kullanan dize verilerinin nasıl dönüştürüldüğü gösterilmektedir. Bu örnekte, dize verileri sınırlayıcı olarak kanal 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: Açıklama içeren bir here-string'i dönüştürme
Bu örnek, açıklama ve birden çok anahtar-değer çifti içeren bir here-string'i karma tabloya 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, here-string içeren bir değişken yerine bir here-string değeridir. Her iki biçim de geçerlidir. Buradaki dize, dizelerden biri hakkında bir açıklama içerir.
ConvertFrom-StringData
tek satırlı açıklamaları yoksayar, ancak #
karakter satırdaki ilk boşluk olmayan karakter olmalıdır. satırından sonraki #
tüm karakterler yoksayılır.
Örnek 4: Dizeyi karma tabloya dönüştürme
Bu örnek, normal bir çift tırnaklı dizeyi (here-string değil) karma tabloya dönüştürür ve değişkene $A
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 için PowerShell yeni satır karakterini (`n
) kullanır.
Örnek 5: Betiğin DATA bölümünde ConvertFrom-StringData kullanma
Bu örnekte, betiğin ConvertFrom-StringData
DATA bölümünde kullanılan bir komut gösterilmektedir.
VERİ bölümünün altındaki deyimler metni kullanıcıya görüntüler.
$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ınması gerekir. VERİ bölümünde değişkenlere izin verilmez.
Örnek 6: Dize geçirmek için işlem hattı işlecini kullanma
Bu örnekte, öğesine bir dize ConvertFrom-StringData
göndermek için işlem hattı işlecini (|
) kullanabileceğiniz gösterilir. Değişkenin $Here
değeri, öğesine ve ConvertFrom-StringData
değişkendeki sonuç olarak $Hash
alını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 kullanma
Bu örnekte, kaynak verilerde yeni satırlar oluşturmak ve karakterleri döndürmek için kaçış karakterlerinin kullanımı gösterilmektedir. Çıkış sırası \n
, sonuçta elde edilen karma tablodaki 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: Dosya yolunu doğru şekilde işlemek için ters eğik çizgi kaçış karakteri kullanma
Bu örnekte, bir dosya yolunun sonuçta elde ConvertFrom-StringData
edilen karma tabloda doğru şekilde işlenmesine izin vermek için dize verilerinde ters eğik çizgi kaçış karakterinin nasıl kullanılacağı gösterilmektedir. Çift ters eğik çizgi, değişmez ters eğik çizgi karakterlerinin karma tablo çıkışında 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
Anahtarı dönüştürülen dizedeki 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 eklendi.
Tür: | Char |
Position: | 1 |
Default value: | '=' |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-StringData
Dönüştürülecek dizeyi belirtir. Bu parametreyi kullanabilir veya bir dizeyi öğesine yöneltebilirsiniz ConvertFrom-StringData
. 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ı veya her çift yeni satır karakterleriyle (`n
) ayrılmalıdır.
Dizeye açıklamalar ekleyebilirsiniz, ancak açıklamalar bir anahtar-değer çifti ile aynı satırda olamaz. ConvertFrom-StringData
tek satırlı açıklamaları yoksayar. Karakter, #
satırdaki ilk boşluk olmayan karakter olmalıdır. satırından sonraki #
tüm karakterler yoksayılır. Açıklamalar karma tabloya dahil değildir.
Here-string, bir veya daha fazla satırdan oluşan bir dizedir. Here-string içindeki tırnak işaretleri, tam anlamıyla dize verilerinin bir parçası olarak yorumlanır. Daha fazla bilgi için bkz . about_Quoting_Rules.
Tür: | String |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
Girişler
Anahtar-değer çifti içeren bir dizeyi bu cmdlet'e yöneltebilirsiniz.
Çıkışlar
Bu cmdlet, anahtar-değer çiftlerinden oluşturduğu bir karma tablo döndürür.
Notlar
Here-string, tırnak işaretlerinin tam anlamıyla yorumlandığı bir veya daha fazla satırdan oluşan bir dizedir.
Bu cmdlet, kullanıcı iletilerini birden çok konuşulan dilde görüntüleyen betiklerde yararlı olabilir. Metin dizelerini kaynak dosyaları gibi koddan yalıtmak ve metin dizelerini çeviri araçlarında kullanmak üzere biçimlendirmek için sözlük stili karma tabloları kullanabilirsiniz.
PowerShell