Condividi tramite


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.

Input

PSObject

Output

String