ConvertFrom-StringData
Mengonversi string yang berisi satu atau beberapa pasangan kunci dan nilai ke tabel hash.
Sintaks
Default (Default)
ConvertFrom-StringData
[-StringData] <String>
[[-Delimiter] <Char>]
[<CommonParameters>]
Deskripsi
cmdlet ConvertFrom-StringData 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 (=).
Cmdlet ConvertFrom-StringData dianggap sebagai cmdlet aman yang dapat digunakan di bagian data 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 memberi sinyal akhir baris dalam skrip.
Pada here-string, 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 di-escape, seperti yang umum digunakan dalam jalur file, dapat dirender sebagai urutan escape ilegal dalam hasil Anda.
PowerShell 7 menambahkan parameter pemisah.
Contoh
Contoh 1: Mengubah here-string berpenanda petik tunggal menjadi tabel hash
Contoh ini mengonversi here-string yang berisi pesan pengguna dalam tanda petik tunggal menjadi tabel hash. Dalam string yang dikutip tunggal, nilai tidak diganti dengan variabel dan ekspresi tidak dievaluasi.
cmdlet ConvertFrom-StringData mengonversi nilai dalam variabel $Here menjadi tabel hash.
$Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable doesn't exist.
'@
ConvertFrom-StringData -StringData $Here
Name Value
---- -----
Msg3 The specified variable doesn't 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, bukan variabel yang mengandung here-string. Kedua format tersebut valid. String berikut menyertakan komentar tentang salah satu string.
ConvertFrom-StringData mengabaikan komentar baris tunggal, tetapi karakter hash (#) harus menjadi karakter non-spasi pertama pada baris.
Contoh 4: Mengonversi string ke tabel hash
Contoh ini mengonversi string berkutip ganda biasa (bukan here-string) menjadi tabel hash dan menyimpannya dalam variabel $A.
$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 di bagian 'data' dari skrip
Contoh ini memperlihatkan perintah ConvertFrom-StringData yang digunakan di bagian data 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 dengan tanda kutip tunggal sehingga variabel ditafsirkan secara harfiah dan tidak dikembangkan. 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 $Here disalurkan ke ConvertFrom-StringData dan hasilnya dalam variabel $Hash.
$Here = @'
Msg1 = The string parameter is required.
Msg2 = Credentials are required for this command.
Msg3 = The specified variable doesn't exist.
'@
$Hash = $Here | ConvertFrom-StringData
$Hash
Name Value
---- -----
Msg3 The specified variable doesn't 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 escape \n 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
Didn't 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 ConvertFrom-StringData yang dihasilkan. Garis miring terbalik ganda memastikan bahwa karakter garis miring terbalik literal dapat ditampilkan 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 nilai data dalam string yang sedang dikonversi.
Pemisah default adalah karakter tanda sama dengan (=). Parameter ini ditambahkan di PowerShell 7.
Properti parameter
| Jenis: | Char |
| Nilai default: | = |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | 1 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-StringData
Menentukan string yang akan dikonversi. Anda dapat menggunakan parameter ini atau menyalurkan string untuk 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 hash (#) harus menjadi karakter non-spasi pertama pada baris. Semua karakter pada baris setelah karakter hash (#) 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 lebih lanjut, lihat about_Quoting_Rules.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
String
Anda dapat menyalurkan string yang berisi pasangan kunci-nilai ke cmdlet ini.
Output
Hashtable
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.