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, Elseve ElseIf deyimleri

  • Aşağıdaki otomatik değişkenler: $PsCulture, $PsUICulture, $True, $Falseve $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-Xmliç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 $TextMsgskarma 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.