Bagikan melalui


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.