Join-String
Combina oggetti dalla pipeline in una singola stringa.
Sintassi
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>]
Descrizione
Il cmdlet Join-String
unisce o combina testo da oggetti pipeline in una singola stringa.
Se non vengono specificati parametri, gli oggetti pipeline vengono convertiti in una stringa e uniti con il separatore predefinito $OFS
.
Nota
Quando si imposta $OFS
relativo valore viene usato per unire matrici quando vengono convertite in stringhe fino a quando la variabile non viene reimpostata in $null
. Poiché l'uso di
Specificando un nome di proprietà, il valore della proprietà viene convertito in una stringa e unito in una stringa.
Anziché un nome di proprietà, è possibile usare un blocco di script. Il risultato del blocco di script viene convertito in una stringa prima che venga unito al risultato. Può combinare il testo della proprietà di un oggetto o il risultato dell'oggetto convertito in una stringa.
Questo cmdlet è stato introdotto in PowerShell 6.2.
Esempio
Esempio 1: Aggiungere nomi di directory
Questo esempio unisce i nomi di directory, esegue il wrapping dell'output tra virgolette doppie e separa i nomi di directory con una virgola e uno spazio (,
). L'output è un oggetto stringa.
Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '
"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"
Join-String
. Il parametro
Gli oggetti Get-ChildItem
sono System.IO.DirectoryInfo e Join-String
converte gli oggetti in System.String.
Esempio 2: Usare una sottostringa di proprietà per aggiungere nomi di directory
Questo esempio usa un metodo di sottostringa per ottenere le prime quattro lettere di nomi di directory, esegue il wrapping dell'output tra virgolette singole e separa i nomi di directory con un punto e virgola (;
).
Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'
'Perf';'Prog';'Prog';'User';'Wind'
Join-String
.
Il blocco di script proprietà
Per altre informazioni sulle variabili automatiche e le sottostringhe, vedere about_Automatic_Variables e substring.
Esempio 3: Visualizzare l'output di join in una riga separata
Questo esempio unisce i nomi dei servizi a ogni servizio in una riga separata e rientrati da una scheda.
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
*
) è un carattere jolly per qualsiasi carattere.
Gli oggetti vengono inviati alla pipeline per Services:
con una nuova riga e una nuova scheda prima della prima riga di output.
Per altre informazioni sui caratteri speciali, vedere about_Special_Characters.
Esempio 4: Creare una definizione di classe da un oggetto
Questo esempio genera una definizione di classe di PowerShell usando un oggetto esistente come modello.
Questo esempio di codice usa lo splatting per ridurre la lunghezza della riga e migliorare la leggibilità. Per altre informazioni, vedere 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
}
Parametri
-DoubleQuote
Esegue il wrapping del valore stringa di ogni oggetto pipeline tra virgolette doppie.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-FormatString
Specifica una stringa di formato che specifica la modalità di formattazione di ogni oggetto pipeline prima di unirle. Utilizzare il segnaposto {0}
per rappresentare l'oggetto corrente. Se è necessario mantenere le parentesi graffe ({}
) nella stringa formattata, è possibile eseguirne l'escape raddoppiando le parentesi graffe ({{
e }}
).
Per altre informazioni, vedere il metodo
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputObject
Specifica il testo da unire. Immettere una variabile contenente il testo o digitare un comando o un'espressione che ottiene gli oggetti da unire in stringhe.
Tipo: | PSObject[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-OutputPrefix
Testo inserito prima della stringa di output. La stringa può contenere caratteri speciali, ad esempio ritorno a capo (`r
), nuova riga (`n
) e tabulazioni (`t
).
Tipo: | String |
Alias: | op |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-OutputSuffix
Testo aggiunto alla stringa di output. La stringa può contenere caratteri speciali, ad esempio ritorno a capo (`r
), nuova riga (`n
) e tabulazioni (`t
).
Tipo: | String |
Alias: | os |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Property
Nome di una proprietà o di un'espressione di proprietà da convertire in testo.
Tipo: | PSPropertyExpression |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Separator
Testo o caratteri, ad esempio una virgola o un punto e virgola inserito tra il testo per ogni oggetto pipeline.
Per impostazione predefinita, gli oggetti pipeline vengono uniti senza un separatore. Se è impostata la separatore di campi di output variabile di preferenza ($OFS
), tale valore viene utilizzato a meno che non venga specificato questo parametro.
Nota
Quando si imposta $OFS
relativo valore viene usato per unire matrici quando vengono convertite in stringhe fino a quando la variabile non viene reimpostata in $null
. Poiché l'uso di
Tipo: | String |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-SingleQuote
Esegue il wrapping del valore stringa di ogni oggetto pipeline tra virgolette singole.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-UseCulture
Usa il separatore di elenco per le impostazioni cultura correnti come delimitatore di elemento. Per trovare il separatore di elenco per le impostazioni cultura, usare il comando seguente: (Get-Culture).TextInfo.ListSeparator
.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |