ConvertFrom-StringData
Mengonversi string yang berisi satu atau beberapa pasangan kunci dan nilai ke tabel hash.
Sintaks
ConvertFrom-StringData
[-StringData] <String>
[[-Delimiter] <Char>]
[<CommonParameters>]
Deskripsi
ConvertFrom-StringData
Cmdlet mengonversi string yang berisi satu atau beberapa pasangan kunci dan nilai menjadi tabel hash. Karena setiap pasangan kunci-nilai harus berada di baris terpisah, string di sini sering digunakan sebagai format input. Secara default, kunci harus dipisahkan dari nilai dengan karakter tanda sama dengan (=
).
ConvertFrom-StringData
Cmdlet dianggap sebagai cmdlet aman yang dapat digunakan di bagian DATA dari skrip atau fungsi. Saat digunakan di bagian DATA , konten string harus sesuai dengan aturan untuk bagian DATA . Untuk informasi selengkapnya, lihat about_Data_Sections.
ConvertFrom-StringData
mendukung urutan karakter escape yang diizinkan oleh alat terjemahan mesin konvensional. Artinya, cmdlet dapat menafsirkan garis miring terbalik (\
) sebagai karakter escape dalam data string dengan menggunakan Metode Regex.Unescape, alih-alih karakter backtick PowerShell (`
) yang biasanya akan menandakan akhir baris dalam skrip.
Di dalam string di sini, karakter backtick tidak berfungsi. Anda juga dapat mempertahankan garis miring terbalik harfiah dalam hasil Anda dengan melarikan diri dengan garis miring terbalik sebelumnya, seperti ini: \\
. Karakter garis miring terbalik yang tidak dilewati, seperti yang umum digunakan dalam jalur file, dapat dirender sebagai urutan escape ilegal dalam hasil Anda.
PowerShell 7 menambahkan parameter Pembatas.
Contoh
Contoh 1: Mengonversi string di sini yang dikutip tunggal ke tabel hash
Contoh ini mengonversi string pesan pengguna di sini yang dikutip tunggal menjadi tabel hash. Dalam string yang dikutip tunggal, nilai tidak diganti dengan variabel dan ekspresi tidak dievaluasi.
ConvertFrom-StringData
Cmdlet mengonversi nilai dalam $Here
variabel menjadi tabel hash.
$Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@
ConvertFrom-StringData -StringData $Here
Name Value
---- -----
Msg3 The specified variable does not exist.
Msg2 Credentials are required for this command.
Msg1 The string parameter is required.
Contoh 2: Mengonversi data string menggunakan pemisah yang berbeda
Contoh ini menunjukkan cara mengonversi data string yang menggunakan karakter yang berbeda sebagai pemisah. Dalam contoh ini, data string menggunakan karakter pipa (|
) sebagai pemisah.
$StringData = @'
color|red
model|coupe
year|1965
condition|mint
'@
$carData = ConvertFrom-StringData -StringData $StringData -Delimiter '|'
$carData
Name Value
---- -----
condition mint
model coupe
color red
year 1965
Contoh 3: Mengonversi string di sini yang berisi komentar
Contoh ini mengonversi string di sini yang berisi komentar dan beberapa pasangan kunci-nilai menjadi tabel hash.
ConvertFrom-StringData -StringData @'
Name = Disks.ps1
# Category is optional.
Category = Storage
Cost = Free
'@
Name Value
---- -----
Cost Free
Category Storage
Name Disks.ps1
Nilai parameter StringData adalah here-string, alih-alih variabel yang berisi string di sini. Salah satu format valid. String di sini menyertakan komentar tentang salah satu string.
ConvertFrom-StringData
mengabaikan komentar baris tunggal, tetapi #
karakter harus menjadi karakter non-spasi pertama pada baris. Semua karakter pada baris setelah #
diabaikan.
Contoh 4: Mengonversi string ke tabel hash
Contoh ini mengonversi string yang dikutip ganda reguler (bukan di sini-string) menjadi tabel hash dan menyimpannya dalam $A
variabel.
$A = ConvertFrom-StringData -StringData "Top = Red `n Bottom = Blue"
$A
Name Value
---- -----
Bottom Blue
Top Red
Untuk memenuhi kondisi bahwa setiap pasangan kunci-nilai harus berada di baris terpisah, string menggunakan karakter baris baru PowerShell (`n
) untuk memisahkan pasangan.
Contoh 5: Gunakan ConvertFrom-StringData di bagian DATA dari skrip
Contoh ini memperlihatkan perintah yang ConvertFrom-StringData
digunakan di bagian DATA dari skrip.
Pernyataan di bawah bagian DATA menampilkan teks kepada pengguna.
$TextMsgs = DATA {
ConvertFrom-StringData @'
Text001 = The $Notebook variable contains the name of the user's system notebook.
Text002 = The $MyNotebook variable contains the name of the user's private notebook.
'@
}
$TextMsgs
Name Value
---- -----
Text001 The $Notebook variable contains the name of the user's system notebook.
Text002 The $MyNotebook variable contains the name of the user's private notebook.
Karena teks menyertakan nama variabel, teks harus diapit dalam string yang dikutip tunggal sehingga variabel ditafsirkan secara harfiah dan tidak diperluas. Variabel tidak diizinkan di bagian DATA .
Contoh 6: Gunakan operator alur untuk meneruskan string
Contoh ini menunjukkan bahwa Anda dapat menggunakan operator alur (|
) untuk mengirim string ke ConvertFrom-StringData
. Nilai variabel disalurkan $Here
ke ConvertFrom-StringData
dan hasilnya $Hash
dalam variabel.
$Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable does not exist.
'@
$Hash = $Here | ConvertFrom-StringData
$Hash
Name Value
---- -----
Msg3 The specified variable does not exist.
Msg2 Credentials are required for this command.
Msg1 The string parameter is required.
Contoh 7: Gunakan karakter escape untuk menambahkan baris baru dan mengembalikan karakter
Contoh ini menunjukkan penggunaan karakter escape untuk membuat baris baru dan mengembalikan karakter dalam data sumber. Urutan \n
escape digunakan untuk membuat baris baru dalam blok teks yang terkait dengan nama atau item dalam tabel hash yang dihasilkan.
ConvertFrom-StringData @"
Vincentio = Heaven doth with us as we with torches do,\nNot light them for themselves; for if our virtues\nDid not go forth of us, 'twere all alike\nAs if we had them not.
Angelo = Let there be some more test made of my metal,\nBefore so noble and so great a figure\nBe stamp'd upon it.
"@ | Format-List
Name : Angelo
Value : Let there be some more test made of my metal,
Before so noble and so great a figure
Be stamp'd upon it.
Name : Vincentio
Value : Heaven doth with us as we with torches do,
Not light them for themselves; for if our virtues
Did not go forth of us, 'twere all alike
As if we had them not.
Contoh 8: Gunakan karakter escape garis miring terbalik untuk merender jalur file dengan benar
Contoh ini menunjukkan cara menggunakan karakter escape garis miring terbalik dalam data string untuk memungkinkan jalur file dirender dengan benar dalam tabel hash yang ConvertFrom-StringData
dihasilkan. Garis miring terbalik ganda memastikan bahwa karakter garis miring terbalik harfiah dirender dengan benar dalam output tabel hash.
ConvertFrom-StringData "Message=Look in c:\\Windows\\System32"
Name Value
---- -----
Message Look in c:\Windows\System32
Parameter
-Delimiter
Karakter yang digunakan untuk memisahkan kunci dari data nilai dalam string yang sedang dikonversi.
Pemisah default adalah karakter tanda sama dengan (=
). Parameter ini ditambahkan di PowerShell 7.
Jenis: | Char |
Position: | 1 |
Nilai default: | '=' |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-StringData
Menentukan string yang akan dikonversi. Anda dapat menggunakan parameter ini atau menyalurkan string ke ConvertFrom-StringData
. Nama parameter bersifat opsional.
Nilai parameter ini harus berupa string yang berisi satu atau beberapa pasangan kunci-nilai. Setiap pasangan kunci-nilai harus berada di baris terpisah, atau setiap pasangan harus dipisahkan oleh karakter baris baru (`n
).
Anda dapat menyertakan komentar dalam string, tetapi komentar tidak dapat berada di baris yang sama dengan pasangan kunci-nilai. ConvertFrom-StringData
mengabaikan komentar baris tunggal. Karakter #
harus menjadi karakter non-spasi pertama pada baris. Semua karakter pada baris setelah #
diabaikan. Komentar tidak disertakan dalam tabel hash.
String di sini adalah string yang terdiri dari satu atau beberapa baris. Tanda kutip dalam string di sini ditafsirkan secara harfiah sebagai bagian dari data string. Untuk informasi selengkapnya, lihat about_Quoting_Rules.
Jenis: | String |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
Input
Anda dapat menyalurkan string yang berisi pasangan kunci-nilai ke cmdlet ini.
Output
Cmdlet ini mengembalikan tabel hash yang dibuatnya dari pasangan kunci-nilai.
Catatan
String di sini adalah string yang terdiri dari satu atau beberapa baris di mana tanda kutip ditafsirkan secara harfiah.
Cmdlet ini dapat berguna dalam skrip yang menampilkan pesan pengguna dalam beberapa bahasa lisan. Anda dapat menggunakan tabel hash gaya kamus untuk mengisolasi string teks dari kode, seperti dalam file sumber daya, dan untuk memformat string teks untuk digunakan dalam alat terjemahan.