Join-String
Łączy obiekty z potoku w jeden ciąg.
Składnia
Default (Domyślna)
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>]
Opis
Polecenie cmdlet Join-String łączy lub łączy tekst z obiektów potoku w jeden ciąg.
Jeśli nie określono żadnych parametrów, obiekty potoku są konwertowane na ciąg i łączone z separatorem domyślnym $OFS.
Uwaga / Notatka
Po ustawieniu $OFS jego wartość jest używana do łączenia tablic po ich przekonwertowaniu na ciągi, dopóki zmienna nie zostanie zresetowana do $null. Ponieważ użycie $OFS może mieć niezamierzone efekty w innym miejscu kodu, najlepiej zamiast tego użyć parametru separatora.
Określając nazwę właściwości, wartość właściwości jest konwertowana na ciąg i przyłączona do ciągu.
Zamiast nazwy właściwości można użyć bloku skryptu. Wynik bloku skryptu jest konwertowany na ciąg, zanim zostanie przyłączony w celu utworzenia wyniku. Może on łączyć tekst właściwości obiektu lub wynik obiektu, który został przekonwertowany na ciąg.
To cmdlet zostało wprowadzone w programie PowerShell 6.2.
Przykłady
Przykład 1. Dołączanie nazw katalogów
Ten przykład łączy nazwy katalogów, opakowuje dane wyjściowe w cudzysłowach i oddziela nazwy katalogów przecinkami i spacją (, ). Dane wyjściowe są obiektem ciągu.
Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '
"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"
Get-ChildItem używa parametru directory Directory, aby pobrać wszystkie nazwy katalogów dla dysku C:\.
Obiekty są wysyłane w dół rurki do Join-String. Parametr właściwości określa nazwy katalogów. Parametr DoubleQuote opakowuje nazwy katalogów znakami podwójnego cudzysłowu.
Parametr separatora określa użycie przecinka i spacji (, ) w celu oddzielenia nazw katalogów.
Obiekty Get-ChildItem są System.IO.DirectoryInfo i Join-String konwertują obiekty na System.String.
Przykład 2. Używanie podciągów właściwości do dołączania nazw katalogów
W tym przykładzie użyto metody podciągów, aby uzyskać pierwsze cztery litery nazw katalogów, opakowuje dane wyjściowe w pojedynczych cudzysłowach i oddziela nazwy katalogów średnikami (;).
Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'
'Perf';'Prog';'Prog';'User';'Wind'
Get-ChildItem używa parametru directory Directory, aby pobrać wszystkie nazwy katalogów dla dysku C:\.
Obiekty są wysyłane w dół rurki do Join-String.
Blok skryptu właściwości używa zmiennej automatycznej ($_) do określenia podciągów właściwości nazwa każdego obiektu. Podciąg pobiera pierwsze cztery litery każdej nazwy katalogu. Podciąg określa położenie początkowe i końcowe znaku. Parametr SingleQuote opakowuje nazwy katalogów znakami pojedynczego cudzysłowu. Parametr separatora określa użycie średnika (;) w celu oddzielenia nazw katalogów.
Aby uzyskać więcej informacji na temat zmiennych automatycznych i podciągów, zobacz about_Automatic_Variables i podciąg.
Przykład 3. Wyświetlanie danych wyjściowych sprzężenia w osobnym wierszu
Ten przykład łączy nazwy usług z każdą usługą w osobnym wierszu i wcięciem na karcie.
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 używa parametru Name w celu określenia usług rozpoczynających się od se*. Gwiazdka (*) jest symbolem wieloznacznymi dla dowolnego znaku.
Obiekty są wysyłane w dół potoku do Join-String, który używa parametru właściwości w celu określenia nazw usług. Parametr separatora określa trzy znaki specjalne reprezentujące powrót karetki (`r), newline (`n) i tabulator (`t).
OutputPrefix wstawia etykietę Services: z nowym wierszem i kartą przed pierwszym wierszem danych wyjściowych.
Aby uzyskać więcej informacji na temat znaków specjalnych, zobacz about_Special_Characters.
Przykład 4. Tworzenie definicji klasy na podstawie obiektu
W tym przykładzie jest generowana definicja klasy programu PowerShell przy użyciu istniejącego obiektu jako szablonu.
W tym przykładzie kodu użyto fragmentowania, aby zmniejszyć długość wiersza i zwiększyć czytelność. Aby uzyskać więcej informacji, zobacz 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
}
Parametry
-DoubleQuote
Opakowuje wartość ciągu każdego obiektu potoku w cudzysłowach.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
DoubleQuote
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-FormatString
Określa ciąg formatu określający sposób formatowania każdego obiektu potoku przed ich dołączeniem. Użyj symbolu zastępczego {0}, aby reprezentować bieżący obiekt. Jeśli musisz zachować nawiasy klamrowe ({}) w sformatowanych ciągach, możesz je uniknąć, podwojając nawiasy klamrowe ({{ i }}).
Aby uzyskać więcej informacji, zobacz metodę String.Format i złożone formatowanie.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
Format
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-InputObject
Określa tekst do sprzężenia. Wprowadź zmienną zawierającą tekst lub wpisz polecenie lub wyrażenie, które pobiera obiekty do sprzężenia w ciągi.
Właściwości parametru
| Typ: | PSObject[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-OutputPrefix
Tekst wstawiony przed ciągiem wyjściowym. Ciąg może zawierać znaki specjalne, takie jak powrót karetki (`r), nowy wiersz (`n) i tabulator (`t).
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | op |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-OutputSuffix
Tekst dołączony do ciągu wyjściowego. Ciąg może zawierać znaki specjalne, takie jak powrót karetki (`r), nowy wiersz (`n) i tabulator (`t).
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | system operacyjny |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Property
Nazwa właściwości lub wyrażenie właściwości, które ma zostać przekonwertowane na tekst.
Właściwości parametru
| Typ: | PSPropertyExpression |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | 0 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Separator
Tekst lub znaki, takie jak przecinek lub średnik wstawiony między tekstem dla każdego obiektu potoku.
Domyślnie obiekty potoku są łączone bez separatora. Jeśli jest ustawiona zmienna preferencji separatora pól wyjściowych ($OFS), ta wartość jest używana, chyba że określono ten parametr.
Uwaga / Notatka
Po ustawieniu $OFS jego wartość jest używana do łączenia tablic po ich przekonwertowaniu na ciągi, dopóki zmienna nie zostanie zresetowana do $null. Ponieważ użycie $OFS może mieć niezamierzone efekty w innym miejscu kodu, najlepiej zamiast tego użyć parametru separatora.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | 1 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-SingleQuote
Opakowuje wartość ciągu każdego obiektu potoku w pojedynczych cudzysłowach.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
SingleQuote
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-UseCulture
Używa separatora listy dla bieżącej kultury do oddzielania elementów. Aby znaleźć separator listy dla kultury, użyj następującego polecenia: (Get-Culture).TextInfo.ListSeparator.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.