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 (=).

Cmdlet ConvertFrom-StringData 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 memberi sinyal akhir baris dalam skrip. Di dalam here-string, karakter backtick tidak berfungsi. Anda juga dapat mempertahankan garis miring terbalik harfiah dalam hasil Anda dengan melepaskannya dengan garis miring terbalik sebelumnya, seperti ini: \\. Karakter garis miring terbalik yang tidak dilepaskan, seperti yang biasanya 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 untuk variabel dan ekspresi tidak dievaluasi. Cmdlet ConvertFrom-StringData 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 here-string 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 here-string. 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 reguler yang dikutip ganda (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.

Type:Char
Position:0
Default value:'='
Accept pipeline input:False
Accept wildcard characters: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 satu baris. 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 here-string ditafsirkan secara harfiah sebagai bagian dari data string. Untuk informasi selengkapnya, lihat about_Quoting_Rules.

Type:String
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

Input

String

Anda dapat menyalurkan string yang berisi pasangan kunci-nilai ke ConvertFrom-StringData.

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.