Aracılığıyla paylaş


about_Data_Sections

Kısa açıklama

data bölümlerini, metin dizelerini ve diğer salt okunur verileri betik mantığından yalıtan bölümler olarak açıklar.

Uzun açıklama

PowerShell için tasarlanan betiklerde yalnızca veri içeren bir veya daha fazla data bölümü olabilir. Herhangi bir betik, fonksiyon veya gelişmiş fonksiyona bir veya daha fazla data bölümü ekleyebilirsiniz. data 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, betiğin uluslararasılaştırılmasını desteklemek için data bölümünü kullanabilirsiniz. Diğer dillere çevrilebilen dizeleri yalıtma, bulma ve işleme işlemlerini kolaylaştırmak için data bölümleri kullanabilirsiniz.

data bölümü PowerShell 2.0 özelliğine eklendi.

Sözdizimi

data 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" }
    @'
    <p> Hello, World </p>
    '@
    
  • Bir bölümde varsayılan olarak izin verilen cmdlet'ler data . Varsayılan olarak, yalnızca ConvertFrom-StringData cmdlet'e izin verilir.

  • data parametresini kullanarak bir -SupportedCommand bölümünde izin vereceğiniz cmdlet'ler.

ConvertFrom-StringData bir bölümde data cmdlet'ini kullandığınızda, anahtar-değer çiftlerini tek tırnaklı veya çift tırnaklı metinler 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 çalıştırılamaması için tek tırnaklı dizeler veya tek tırnaklı here-string'ler içine alınmalıdır.

-SupportedCommand

SupportedCommand parametresi, 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 data bölümüne cmdlet'leri ve işlevleri dahil etmelerini sağlamak için tasarlanmıştır.

SupportedCommand değeri, bir veya daha fazla cmdlet veya işlev adının virgülle ayrılmış listesidir.

Örneğin, aşağıdaki data bölümü, xml dosyasındaki verileri biçimlendiren Format-Xmlkullanıcı tarafından yazılmış bir cmdlet içerir:

data -SupportedCommand Format-Xml
{
    Format-Xml -Strings string1, string2, string3
}

data Bölümü Kullanma

bir data 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 data bölümü, buradaki dizeyi karma tabloya dönüştüren bir ConvertFrom-StringData komutu içerir. Karma tablo değişkenine $TextMsgs atanır.

$TextMsgs değişkeni data 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ı data bölümünün tanımına koyabilirsiniz. Ö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 bakınız