Bagikan melalui


Join-String

Menggabungkan objek dari alur ke dalam satu string.

Sintaks

Default (Default)

Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]

SingleQuote

Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-SingleQuote]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]

DoubleQuote

Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-DoubleQuote]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]

Format

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 melalui saluran 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 melalui saluran 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 lebih banyak informasi, 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.

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False

Set parameter

DoubleQuote
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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 .

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

Format
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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.

Properti parameter

Jenis:

PSObject[]

Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:True
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-OutputPrefix

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

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False
Alias:Op

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-OutputSuffix

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

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False
Alias:os

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Property

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

Properti parameter

Jenis:PSPropertyExpression
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:0
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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.

Properti parameter

Jenis:String
Nilai default:None
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

-SingleQuote

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

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False

Set parameter

SingleQuote
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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.

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
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

PSObject

Output

String