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

Join-String Cmdlet 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 $OFSdefault .

Catatan

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-ChildItemmenggunakan parameter Direktori untuk mendapatkan semua nama direktori untuk C:\ drive. Objek dikirim ke 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.

Objeknya Get-ChildItem adalah 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-ChildItemmenggunakan parameter Direktori untuk mendapatkan semua nama direktori untuk C:\ drive. Objek dikirim ke 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-Servicemenggunakan parameter Nama dengan untuk menentukan layanan yang dimulai dengan se*. Tanda bintang (*) adalah kartubebas untuk karakter apa pun.

Objek dikirim ke alur Join-String yang menggunakan parameter Properti untuk menentukan nama layanan. Parameter Pemisah menentukan tiga karakter khusus yang mewakili pengembalian pengangkutan (`r), baris baru (`n), dan tab (`t). OutputPrefix menyisipkan label Services: dengan baris dan tab baru sebelum baris pertama output.

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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FormatString

Menentukan string format yang menentukan bagaimana setiap objek alur harus diformat sebelum menggabungkannya. {0} Gunakan tempat penampung 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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:PSObject[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OutputPrefix

Teks yang disisipkan sebelum string output. String dapat berisi karakter khusus seperti carriage return (`r), newline (`n), dan tab (`t).

Type:String
Aliases:op
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutputSuffix

Teks yang ditambahkan ke string output. String dapat berisi karakter khusus seperti carriage return (`r), newline (`n), dan tab (`t).

Type:String
Aliases:os
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Property

Nama properti, atau ekspresi properti, yang akan dikonversi menjadi teks.

Type:PSPropertyExpression
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 variabel preferensi Pemisah Bidang Output ($OFS) diatur, nilai tersebut digunakan kecuali parameter ini ditentukan.

Catatan

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.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SingleQuote

Membungkus nilai string dari setiap objek alur dalam tanda kutip tunggal.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

PSObject

Output

String