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.
Hiçbir parametre belirtilmezse, işlem hattı nesneleri bir dizeye dönüştürülür ve varsayılan ayırıcı $OFS
ile birleştirilir.
Özellik adı belirtilerek ö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. Bir 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 sarmalar ve dizin adlarını virgülle 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-String
gö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 (,
) kullanılacağını belirtir.
Nesneler Get-ChildItem
System.IO.DirectoryInfo'dır ve 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-String
gö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 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-Service
ile se*
başlayan hizmetleri belirtmek için ile Name parametresini kullanır. Yıldız işareti (*
), herhangi bir karakter için joker karakterdir.
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 ()`n
ve sekmeyi (`r
`t
) temsil eden üç özel karakter belirtir. OutputPrefix, Services etiketini ekler: çıkışın ilk satırından önce yeni bir satır ve sekme ile.
Özel karakterler hakkında daha fazla bilgi için bkz. about_Special_Characters.
Örnek 4: Bir nesneden sınıf tanımı İçerik Oluşturucu
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 öğenin nasıl biçimlendirilmesi gerektiğini belirten bir biçim dizesi.
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 dizelere birleştirecek nesneleri alan 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
İşlem hattı nesnesini metne yansıtacak 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 virgül veya noktalı virgül gibi metinler veya karakterler.
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 aşağıdaki komutu kullanın: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |