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 pembuatan 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, bagian Data digunakan untuk mendukung internasionalisasi skrip. Anda dapat menggunakan bagian Data untuk mempermudah mengisolasi, menemukan, dan memproses string yang akan diterjemahkan ke dalam banyak bahasa antarmuka pengguna (UI).

Bagian Data adalah fitur PowerShell 2.0. Skrip dengan bagian Data tidak akan berjalan di PowerShell 1.0 tanpa revisi.

Sintaks

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

  • If, Else, dan ElseIf pernyataan

  • Variabel otomatis berikut: $PsCulture, , $PsUICulture, $True, $Falsedan $Null

  • Komentar

  • Pipelines

  • 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" }
    [XML] @'
    <p> Hello, World </p>
    '@
    
  • Cmdlet yang diizinkan di bagian Data. Secara default, hanya ConvertFrom-StringData cmdlet yang diizinkan.

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

Saat Anda menggunakan ConvertFrom-StringData cmdlet di bagian Data, Anda dapat mengapit pasangan kunci-nilai dalam string yang dikutip tunggal atau dikutip ganda atau dalam string di sini yang dikutip tunggal atau dikutip ganda. 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 untuk 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 ConvertFrom-StringData perintah yang mengonversi string di sini menjadi tabel hash. Tabel hash ditetapkan ke $TextMsgs variabel .

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. Contohnya:

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 ConvertFrom-StringData cmdlet:

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

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

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