Join-String
Combina oggetti dalla pipeline in una singola stringa.
Sintassi
Default (impostazione predefinita).
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>]
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.
Annotazioni
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 $OFS può avere effetti imprevisti altrove nel codice, è preferibile usare il parametro separatore.
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"
Get-ChildItem usa il parametro directory di per ottenere tutti i nomi di directory per l'unità C:\.
Gli oggetti vengono inviati alla pipeline a Join-String. Il parametro proprietà specifica i nomi di directory. Il parametro DoubleQuote esegue il wrapping dei nomi di directory con virgolette doppie.
Il parametro separatore consente di usare una virgola e uno spazio (, ) per separare i nomi di directory.
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'
Get-ChildItem usa il parametro directory di per ottenere tutti i nomi di directory per l'unità C:\.
Gli oggetti vengono inviati alla pipeline a Join-String.
Il blocco di script proprietà utilizza la variabile automatica ($_) per specificare la sottostringa della proprietà Nome di ogni oggetto. La sottostringa ottiene le prime quattro lettere di ogni nome di directory. La sottostringa specifica le posizioni iniziale e finale del carattere. Il parametro SingleQuote esegue il wrapping dei nomi di directory con virgolette singole. Il parametro separatore consente di utilizzare un punto e virgola (;) per separare i nomi di directory.
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
Get-Service usa il parametro Name con per specificare i servizi che iniziano con se*. L'asterisco (*) è un carattere jolly per qualsiasi carattere.
Gli oggetti vengono inviati alla pipeline per Join-String che usa il parametro proprietà per specificare i nomi del servizio. Il parametro separatore specifica tre caratteri speciali che rappresentano un ritorno a capo (`r), nuova riga (`n) e tabulazioni (`t). Il OutputPrefix inserisce un'etichetta 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 ulteriori 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.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
DoubleQuote
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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 String.Format e formattazione composita.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
Format
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Proprietà dei parametri
| Tipo: | PSObject[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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).
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | op |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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).
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | os |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Property
Nome di una proprietà o di un'espressione di proprietà da convertire in testo.
Proprietà dei parametri
| Tipo: | PSPropertyExpression |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 0 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Annotazioni
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 $OFS può avere effetti imprevisti altrove nel codice, è preferibile usare il parametro separatore.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 1 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-SingleQuote
Esegue il wrapping del valore stringa di ogni oggetto pipeline tra virgolette singole.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
SingleQuote
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-UseCulture
Usa il separatore di elenco per la cultura attuale come delimitatore degli elementi. Per trovare il separatore di elenco per una cultura, usare il comando seguente: (Get-Culture).TextInfo.ListSeparator.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.