Join-String
Menggabungkan objek dari alur ke dalam satu string.
Sintaks
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-SingleQuote]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-DoubleQuote]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-FormatString <String>]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
Deskripsi
cmdlet Join-String
bergabung, atau menggabungkan, teks dari objek alur ke dalam satu string.
Jika tidak ada parameter yang ditentukan, objek alur dikonversi ke string dan digabungkan dengan pemisah default $OFS
.
Nota
Saat Anda mengatur $OFS
nilainya digunakan untuk menggabungkan array saat dikonversi ke string hingga variabel diatur ulang ke $null
. Karena menggunakan $OFS
dapat memiliki efek yang tidak diinginkan di tempat lain dalam kode Anda, yang terbaik adalah menggunakan parameter Pemisah sebagai gantinya.
Dengan menentukan nama properti, nilai properti dikonversi menjadi string dan digabungkan menjadi string.
Alih-alih nama properti, blok skrip dapat digunakan. Hasil blok skrip dikonversi ke string sebelum digabungkan untuk membentuk hasilnya. Ini dapat menggabungkan teks properti objek atau hasil objek yang dikonversi menjadi string.
Cmdlet ini diperkenalkan di PowerShell 6.2.
Contoh
Contoh 1: Bergabung dengan nama direktori
Contoh ini menggabungkan nama direktori, membungkus output dalam tanda kutip ganda, dan memisahkan nama direktori dengan koma dan spasi (,
). Output adalah objek string.
Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '
"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"
Get-ChildItem
menggunakan parameter Direktori untuk mendapatkan semua nama direktori untuk drive C:\
.
Objek dikirimkan alur ke Join-String
. Parameter Properti menentukan nama direktori. Parameter DoubleQuote membungkus nama direktori dengan tanda kutip ganda.
Parameter Pemisah menentukan untuk menggunakan koma dan spasi (,
) untuk memisahkan nama direktori.
Objek Get-ChildItem
System.IO.DirectoryInfo dan Join-String
mengonversi objek menjadi System.String.
Contoh 2: Gunakan substring properti untuk menggabungkan nama direktori
Contoh ini menggunakan metode substring untuk mendapatkan empat huruf pertama nama direktori, membungkus output dalam tanda kutip tunggal, dan memisahkan nama direktori dengan titik koma (;
).
Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'
'Perf';'Prog';'Prog';'User';'Wind'
Get-ChildItem
menggunakan parameter Direktori untuk mendapatkan semua nama direktori untuk drive C:\
.
Objek dikirimkan alur ke Join-String
.
Blok skrip parameter Properti menggunakan variabel otomatis ($_
) untuk menentukan substring properti Nama setiap objek. Substring mendapatkan empat huruf pertama dari setiap nama direktori. Substring menentukan posisi awal dan akhir karakter. Parameter SingleQuote membungkus nama direktori dengan tanda kutip tunggal. Parameter Pemisah menentukan untuk menggunakan titik koma (;
) untuk memisahkan nama direktori.
Untuk informasi selengkapnya tentang variabel dan substring otomatis, lihat about_Automatic_Variables dan Substring.
Contoh 3: Menampilkan output gabungan pada baris terpisah
Contoh ini menggabungkan nama layanan dengan setiap layanan pada baris terpisah dan diindentasi oleh tab.
Get-Service -Name se* | Join-String -Property Name -Separator "`r`n`t" -OutputPrefix "Services:`n`t"
Services:
seclogon
SecurityHealthService
SEMgrSvc
SENS
Sense
SensorDataService
SensorService
SensrSvc
SessionEnv
Get-Service
menggunakan parameter Nama dengan untuk menentukan layanan yang dimulai dengan se*
. Tanda bintang (*
) adalah kartubebas untuk karakter apa pun.
Objek dikirim ke alur ke Join-String
yang menggunakan parameter Properti untuk menentukan nama layanan. Parameter Pemisah menentukan tiga karakter khusus yang mewakili pengembalian gerbong (`r
), baris baru (`n
), dan tab (`t
). OutputPrefix menyisipkan label Services:
dengan baris dan tab baru sebelum baris output pertama.
Untuk informasi selengkapnya tentang karakter khusus, lihat about_Special_Characters.
Contoh 4: Membuat definisi kelas dari objek
Contoh ini menghasilkan definisi kelas PowerShell menggunakan objek yang ada sebagai templat.
Sampel kode ini menggunakan splatting untuk mengurangi panjang garis dan meningkatkan keterbacaan. Untuk informasi selengkapnya, lihat about_Splatting.
$obj = [pscustomobject] @{Name = "Joe"; Age = 42}
$parms = @{
Property = "Name"
FormatString = ' ${0}'
OutputPrefix = "class {`n"
OutputSuffix = "`n}`n"
Separator = "`n"
}
$obj.psobject.Properties | Join-String @parms
class {
$Name
$Age
}
Parameter
-DoubleQuote
Membungkus nilai string dari setiap objek alur dalam tanda kutip ganda.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-FormatString
Menentukan string format yang menentukan bagaimana setiap objek alur harus diformat sebelum menggabungkannya. Gunakan tempat penampung {0}
untuk mewakili objek saat ini. Jika Anda perlu menyimpan kurung kurawal ({}
) dalam string yang diformat, Anda dapat melepaskannya dengan menggandakan kurung kurawal ({{
dan }}
).
Untuk informasi selengkapnya, lihat metode String.Format dan Pemformatan Komposit .
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-InputObject
Menentukan teks yang akan digabungkan. Masukkan variabel yang berisi teks, atau ketik perintah atau ekspresi yang mendapatkan objek untuk digabungkan ke dalam string.
Jenis: | PSObject[] |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | True |
Terima karakter wildcard: | False |
-OutputPrefix
Teks yang disisipkan sebelum string output. String dapat berisi karakter khusus seperti carriage return (`r
), newline (`n
), dan tab (`t
).
Jenis: | String |
Alias: | op |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-OutputSuffix
Teks yang ditambahkan ke string output. String dapat berisi karakter khusus seperti carriage return (`r
), newline (`n
), dan tab (`t
).
Jenis: | String |
Alias: | os |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Property
Nama properti, atau ekspresi properti, yang akan dikonversi menjadi teks.
Jenis: | PSPropertyExpression |
Position: | 0 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Separator
Teks atau karakter seperti koma atau titik koma yang disisipkan di antara teks untuk setiap objek alur.
Secara default, objek alur digabungkan tanpa pemisah. Jika Pemisah Bidang Output variabel preferensi ($OFS
) diatur, nilai tersebut digunakan kecuali parameter ini ditentukan.
Nota
Saat Anda mengatur $OFS
nilainya digunakan untuk menggabungkan array saat dikonversi ke string hingga variabel diatur ulang ke $null
. Karena menggunakan $OFS
dapat memiliki efek yang tidak diinginkan di tempat lain dalam kode Anda, yang terbaik adalah menggunakan parameter Pemisah sebagai gantinya.
Jenis: | String |
Position: | 1 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-SingleQuote
Membungkus nilai string dari setiap objek alur dalam tanda kutip tunggal.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-UseCulture
Menggunakan pemisah daftar untuk budaya saat ini sebagai pemisah item. Untuk menemukan pemisah daftar untuk budaya, gunakan perintah berikut: (Get-Culture).TextInfo.ListSeparator
.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |