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
, danElseIf
pernyataanVariabel otomatis berikut:
$PsCulture
, ,$PsUICulture
,$True
,$False
dan$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
}