about_Data_Sections
Kısa açıklama
Metin dizelerini ve diğer salt okunur verileri betik mantığından yalıtan Veri bölümlerini açıklar.
Uzun açıklama
PowerShell için tasarlanan betiklerde yalnızca veri içeren bir veya daha fazla Veri bölümü olabilir. Herhangi bir betik, işlev veya gelişmiş işleve bir veya daha fazla Veri bölümü ekleyebilirsiniz. Veri bölümünün içeriği, PowerShell betik dilinin belirtilen bir alt kümesiyle sınırlıdır.
Verileri kod mantığından ayırmak, hem mantığı hem de verileri tanımlamayı ve yönetmeyi kolaylaştırır. Hata iletileri ve Yardım dizeleri gibi metinler için ayrı dize kaynak dosyalarına sahip olmanıza olanak tanır. Ayrıca güvenlik ve doğrulama testlerini kolaylaştıran kod mantığını yalıtıyor.
PowerShell'de Veri bölümü, betiğin uluslararasılaştırılmasını desteklemek için kullanılır. Birçok kullanıcı arabirimi (UI) diline çevrilecek dizeleri yalıtma, bulma ve işleme işlemlerini kolaylaştırmak için Veri bölümlerini kullanabilirsiniz.
Veri bölümü bir PowerShell 2.0 özelliğidir. Data bölümlerine sahip betikler PowerShell 1.0'da düzeltme olmadan çalışmaz.
Sözdizimi
Veri bölümünün söz dizimi aşağıdaki gibidir:
DATA [<variable-name>] [-supportedCommand <cmdlet-name>] {
<Permitted content>
}
Data anahtar sözcüğü gereklidir. Büyük/küçük harfe duyarlı değildir. İzin verilen içerik aşağıdaki öğelerle sınırlıdır:
Dışındaki tüm PowerShell işleçleri
-match
If
,Else
veElseIf
deyimleriAşağıdaki otomatik değişkenler:
$PsCulture
,$PsUICulture
,$True
,$False
ve$Null
Açıklamalar
Pipelines
Noktalı virgülle ayrılmış deyimler (
;
)Değişmez değerler, örneğin:
a 1 1,2,3 "PowerShell 2.0" @( "red", "green", "blue" ) @{ a = 0x1; b = "great"; c ="script" } [XML] @' <p> Hello, World </p> '@
Veri bölümünde izin verilen cmdlet'ler. Varsayılan olarak, yalnızca
ConvertFrom-StringData
cmdlet'e izin verilir.Parametresini kullanarak Bir Veri bölümünde izin ettiğiniz cmdlet'ler
-SupportedCommand
.
Bir Veri bölümünde cmdlet'ini ConvertFrom-StringData
kullandığınızda, anahtar-değer çiftlerini tek tırnaklı veya çift tırnaklı dizelere ya da tek tırnaklı veya çift tırnaklı here-strings içine alabilirsiniz. Ancak, değişkenler ve alt ifadeler içeren dizeler, değişkenlerin genişletilmemesi ve alt ifadelerin yürütülebilir olmaması için tek tırnaklı dizeler veya tek tırnaklı here-strings içine alınmalıdır.
-SupportedCommand
parametresi, -SupportedCommand
bir cmdlet'in veya işlevin yalnızca veri oluşturduğunu belirtmenizi sağlar. Kullanıcıların yazdıkları veya test ettikleri bir veri bölümüne cmdlet'leri ve işlevleri dahil etmelerini sağlamak için tasarlanmıştır.
değeri -SupportedCommand
, bir veya daha fazla cmdlet veya işlev adının virgülle ayrılmış listesidir.
Örneğin, aşağıdaki veri bölümü, xml dosyasındaki verileri biçimlendiren, kullanıcı tarafından yazılmış bir cmdlet'i Format-Xml
içerir:
DATA -supportedCommand Format-Xml
{
Format-Xml -Strings string1, string2, string3
}
Veri Bölümü Kullanma
Veri bölümünün içeriğini kullanmak için bunu bir değişkene atayın ve içeriğe erişmek için değişken gösterimini kullanın.
Örneğin, aşağıdaki veri bölümü, here-string öğesini karma tabloya dönüştüren bir komut içerir ConvertFrom-StringData
. Karma tablo değişkenine $TextMsgs
atanır.
$TextMsgs
değişken, veri bölümünün bir parçası değildir.
$TextMsgs = DATA {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
içindeki $TextMsgs
karma tablosundaki anahtarlara ve değerlere erişmek için aşağıdaki komutları kullanın.
$TextMsgs.Text001
$TextMsgs.Text002
Alternatif olarak, değişken adını Veri bölümünün tanımına yerleştirebilirsiniz. Örneğin:
DATA TextMsgs {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
$TextMsgs
Sonuç, önceki örnekle aynıdır.
Name Value
---- -----
Text001 Windows 7
Text002 Windows Server 2008 R2
Örnekler
Basit veri dizeleri.
DATA {
"Thank you for using my PowerShell Organize.pst script."
"It is provided free of charge to the community."
"I appreciate your comments and feedback."
}
İzin verilen değişkenleri içeren dizeler.
DATA {
if ($null) {
"To get help for this cmdlet, type get-help new-dictionary."
}
}
cmdlet'ini kullanan tek tırnaklı ConvertFrom-StringData
bir here-string:
DATA {
ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
cmdlet'ini kullanan çift tırnaklı ConvertFrom-StringData
bir here-string:
DATA {
ConvertFrom-StringData -stringdata @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}
Veri oluşturan kullanıcı tarafından yazılmış bir cmdlet içeren veri bölümü:
DATA -supportedCommand Format-XML {
Format-Xml -strings string1, string2, string3
}
Ayrıca bkz.
PowerShell