Join-String

İşlem hattındaki nesneleri tek bir dizede birleştirir.

Syntax

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>]

Description

Join-String Cmdlet, işlem hattı nesnelerinden gelen metni tek bir dizede birleştirir veya birleştirir.

Parametre belirtilmezse, işlem hattı nesneleri bir dizeye dönüştürülür ve varsayılan ayırıcı $OFSile birleştirilir.

Not

değerini ayarladığınızda $OFS , değişken olarak sıfırlanana kadar dizelere dönüştürülen dizileri birleştirmek için $nullkullanılır. kullanmanın $OFS kodunuzun başka bir yerinde istenmeyen etkileri olabileceğinden, bunun yerine Ayırıcı parametresini kullanmak en iyisidir.

Özellik adı belirterek özelliğin değeri bir dizeye dönüştürülür ve bir dizeye katılır.

Özellik adı yerine betik bloğu kullanılabilir. Betik bloğunun sonucu, sonucu oluşturmak üzere birleştirilmeden önce bir dizeye dönüştürülür. Nesnenin özelliğinin metnini veya dizeye dönüştürülen nesnenin sonucunu birleştirebilir.

Bu cmdlet PowerShell 6.2'de kullanıma sunulmuştur.

Örnekler

Örnek 1: Dizin adlarını birleştirme

Bu örnek dizin adlarını birleştirir, çıkışı çift tırnak içine alır ve dizin adlarını virgül ve boşlukla (, ) ayırır. Çıkış bir dize nesnesidir.

Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '

"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"

Get-ChildItem, sürücünün tüm dizin adlarını almak için Directory parametresini C:\ kullanır. Nesneler işlem hattına Join-Stringgönderilir. Property parametresi dizin adlarını belirtir. DoubleQuote parametresi, dizin adlarını çift tırnak işaretleri ile sarmalar. Ayırıcı parametresi, dizin adlarını ayırmak için virgül ve boşluk (, ) kullanmayı belirtir.

Nesneler Get-ChildItem System.IO.DirectoryInfo'dırve Join-String nesneleri System.String'e dönüştürür.

Örnek 2: Dizin adlarını birleştirmek için özellik alt dizesi kullanma

Bu örnek, dizin adlarının ilk dört harfini almak için bir alt dize yöntemi kullanır, çıkışı tek tırnak içine alır ve dizin adlarını noktalı virgülle (; ) ayırır.

Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'

'Perf';'Prog';'Prog';'User';'Wind'

Get-ChildItem, sürücünün tüm dizin adlarını almak için Directory parametresini C:\ kullanır. Nesneler işlem hattına Join-Stringgönderilir.

Özellik parametresi betik bloğu, her nesnenin Name özelliği alt dizesini belirtmek için otomatik değişken ($_) kullanır. Alt dize, her dizin adının ilk dört harfini alır. Alt dize, karakter başlangıç ve bitiş konumlarını belirtir. SingleQuote parametresi, dizin adlarını tek tırnak işaretleri ile sarmalar. Ayırıcı parametresi, dizin adlarını ayırmak için noktalı virgül (;) kullanılacağını belirtir.

Otomatik değişkenler ve alt dizeler hakkında daha fazla bilgi için bkz . about_Automatic_Variables ve Alt Dize.

Örnek 3: Birleştirme çıkışını ayrı bir satırda görüntüleme

Bu örnek, hizmet adlarını her hizmetle ayrı bir satırda birleştirir ve bir sekmeyle girintili olarak ekler.

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-Serviceile se*başlayan hizmetleri belirtmek için ile Name parametresini kullanır. Yıldız işareti (*), herhangi bir karakterin joker karakteridir.

Nesneler, hizmet adlarını belirtmek için Join-String Property parametresini kullanan işlem hattına gönderilir. Ayırıcı parametresi, satır başı (), yeni satır () ve sekmeyi`n (`r`t) temsil eden üç özel karakter belirtir. OutputPrefix, çıkışın ilk satırından önce yeni bir satır ve sekme içeren bir etiket Services: ekler.

Özel karakterler hakkında daha fazla bilgi için bkz . about_Special_Characters.

Örnek 4: Nesneden sınıf tanımı oluşturma

Bu örnek, var olan bir nesneyi şablon olarak kullanarak bir PowerShell sınıf tanımı oluşturur.

Bu kod örneği, satır uzunluğunu azaltmak ve okunabilirliği geliştirmek için sıçramayı kullanır. Daha fazla bilgi için bkz . 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
}

Parametreler

-DoubleQuote

Her işlem hattı nesnesinin dize değerini çift tırnak içine alır.

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

-FormatString

Her işlem hattı nesnesini birleştirmeden önce nasıl biçimlendirilmesi gerektiğini belirten bir biçim dizesi belirtir. {0} Geçerli nesneyi temsil etmek için yer tutucuyu kullanın. Küme ayraçlarını ({}) biçimlendirilmiş dizede tutmanız gerekiyorsa, küme ayraçlarını ({{ ve }}) iki katına çıkararak bu küme ayraçlarından kaçabilirsiniz.

Daha fazla bilgi için bkz . String.Format yöntemi ve Bileşik Biçimlendirme.

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

-InputObject

Birleştirilecek metni belirtir. Metni içeren bir değişken girin veya nesnelerin dizelere katılmasını sağlayan bir komut veya ifade yazın.

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

-OutputPrefix

Çıkış dizesinden önce eklenen metin. Dize, satır başı (), yeni satır ()`r ve sekme (`n`t gibi özel karakterler içerebilir.

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

-OutputSuffix

Çıkış dizesine eklenen metin. Dize, satır başı (), yeni satır ()`r ve sekme (`n`t gibi özel karakterler içerebilir.

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

-Property

Metne dönüştürülecek bir özelliğin veya özellik ifadesinin adı.

Type:PSPropertyExpression
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Separator

Her işlem hattı nesnesinin metni arasına eklenen metin veya virgül veya noktalı virgül gibi karakterler.

Varsayılan olarak, işlem hattı nesneleri ayırıcı olmadan birleştirilir. Çıkış Alanı Ayırıcısı tercih değişkeni ($OFS) ayarlanırsa, bu parametre belirtilmediği sürece bu değer kullanılır.

Not

değerini ayarladığınızda $OFS , değişken olarak sıfırlanana kadar dizelere dönüştürülen dizileri birleştirmek için $nullkullanılır. kullanmanın $OFS kodunuzun başka bir yerinde istenmeyen etkileri olabileceğinden, bunun yerine Ayırıcı parametresini kullanmak en iyisidir.

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

-SingleQuote

Her işlem hattı nesnesinin dize değerini tek tırnak içine alır.

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

-UseCulture

Öğe sınırlayıcısı olarak geçerli kültür için liste ayırıcısını kullanır. Bir kültürün liste ayırıcısını bulmak için şu komutu kullanın: (Get-Culture).TextInfo.ListSeparator.

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

Girişler

PSObject

Çıkışlar

String