Bagikan melalui


about_Data_Sections

Deskripsi singkat

Menjelaskan bagian data, yang mengisolasi string teks dan data baca-saja lainnya dari logika skrip.

Deskripsi panjang

Skrip yang dirancang untuk PowerShell dapat memiliki satu atau beberapa bagian data yang hanya berisi data. Anda dapat menyertakan satu atau beberapa bagian data dalam skrip, fungsi, atau fungsi tingkat lanjut apa pun. Konten bagian data dibatasi untuk subset tertentu dari bahasa skrip PowerShell.

Memisahkan data dari logika kode memudahkan untuk mengidentifikasi dan mengelola logika dan data. Ini memungkinkan Anda memiliki file sumber daya string terpisah untuk teks, seperti pesan kesalahan dan string Bantuan. Ini juga mengisolasi logika kode, yang memfasilitasi pengujian keamanan dan validasi.

Di PowerShell, Anda dapat menggunakan bagian data untuk mendukung internasionalisasi skrip. Anda dapat menggunakan bagian data untuk mempermudah mengisolasi, menemukan, dan memproses string yang dapat diterjemahkan ke dalam bahasa lain.

Bagian data ditambahkan di fitur PowerShell 2.0.

Sintaksis

Sintaks untuk bagian data adalah sebagai berikut:

data [<variable-name>] [-SupportedCommand <cmdlet-name>] {
    <Permitted content>
}

Kata kunci data diperlukan. Ini tidak peka huruf besar/kecil. Konten yang diizinkan terbatas pada elemen berikut:

  • Semua operator PowerShell, kecuali -match

  • pernyataan if, else, dan elseif

  • Variabel otomatis berikut: $PSCulture, $PSUICulture, $true, $false, dan $null

  • Komentar

  • Pipa

  • Pernyataan dipisahkan oleh titik koma (;)

  • Literal, seperti berikut ini:

    a
    1
    1,2,3
    "PowerShell 2.0"
    @( "red", "green", "blue" )
    @{ a = 0x1; b = "great"; c ="script" }
    @'
    <p> Hello, World </p>
    '@
    
  • Cmdlet yang diizinkan di bagian data secara default. Secara default, hanya cmdlet ConvertFrom-StringData yang diizinkan.

  • Cmdlet yang Anda izinkan di bagian data dengan menggunakan parameter -SupportedCommand.

Saat Anda menggunakan cmdlet ConvertFrom-StringData di bagian data, Anda dapat mengapit pasangan kunci-nilai dalam string yang dikutip tunggal atau dikutip ganda atau dalam string dikutip tunggal atau dikutip ganda di sini. Namun, string yang berisi variabel dan subekspresi harus diapit dalam string yang dikutip tunggal atau dalam string di sini yang dikutip tunggal sehingga variabel tidak diperluas dan subekspresi tidak dapat dieksekusi.

-SupportedCommand

Parameter SupportedCommand memungkinkan Anda menunjukkan bahwa cmdlet atau fungsi hanya menghasilkan data. Ini dirancang untuk memungkinkan pengguna menyertakan cmdlet dan fungsi di bagian data yang telah mereka tulis atau uji.

Nilai SupportedCommand adalah daftar yang dipisahkan koma dari satu atau beberapa cmdlet atau nama fungsi.

Misalnya, bagian data berikut menyertakan cmdlet yang ditulis pengguna, Format-Xml, yang memformat data dalam file XML:

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

Menggunakan Bagian data

Untuk menggunakan konten bagian data, tetapkan ke variabel dan gunakan notasi variabel untuk mengakses konten.

Misalnya, bagian data berikut berisi perintah ConvertFrom-StringData yang mengonversi string di sini menjadi tabel hash. Tabel hash ditetapkan ke variabel $TextMsgs.

Variabel $TextMsgs bukan bagian dari bagian data.

$TextMsgs = data {
    ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}

Untuk mengakses kunci dan nilai dalam tabel hash di $TextMsgs, gunakan perintah berikut.

$TextMsgs.Text001
$TextMsgs.Text002

Secara bergantian, Anda dapat menempatkan nama variabel dalam definisi bagian data. Misalnya:

data TextMsgs {
    ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}

$TextMsgs

Hasilnya sama dengan contoh sebelumnya.

Name                           Value
----                           -----
Text001                        Windows 7
Text002                        Windows Server 2008 R2

Contoh

String data sederhana.

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

String yang mencakup variabel yang diizinkan.

data {
    if ($null) {
        "To get help for this cmdlet, type Get-Help New-Dictionary."
    }
}

String di sini yang dikutip tunggal yang menggunakan cmdlet ConvertFrom-StringData:

data {
    ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}

String di sini yang dikutip ganda yang menggunakan cmdlet ConvertFrom-StringData:

data {
    ConvertFrom-StringData -StringData @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}

Bagian data yang menyertakan cmdlet yang ditulis pengguna yang menghasilkan data:

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

Lihat juga