Condividi tramite


Out-String

Restituisce gli oggetti di input come stringa.

Sintassi

Out-String
   [-Width <Int32>]
   [-NoNewline]
   [-InputObject <PSObject>]
   [<CommonParameters>]
Out-String
   [-Stream]
   [-Width <Int32>]
   [-InputObject <PSObject>]
   [<CommonParameters>]

Descrizione

Il Out-String cmdlet converte gli oggetti di input in stringhe. Per impostazione predefinita, Out-String accumula le stringhe e le restituisce come singola stringa, ma è possibile usare il parametro Stream per Out-String restituire una riga alla volta o creare una matrice di stringhe. Questo cmdlet consente di modificare ed eseguire ricerche nell'output delle stringhe in modo simile alle shell tradizionali, in cui la modifica degli oggetti risulta meno efficiente.

PowerShell aggiunge anche la funzione che chiama Out-String -Stream come modo abbreviato per l'uso OSSOut-String in una pipeline.

Esempio

Esempio 1: Ottenere le impostazioni cultura correnti e convertire i dati in stringhe

Questo esempio ottiene le impostazioni internazionali per l'utente corrente e converte i dati dell'oggetto in stringhe.

$C = Get-Culture | Select-Object -Property *
Out-String -InputObject $C -Width 100

Parent                         : en
LCID                           : 1033
KeyboardLayoutId               : 1033
Name                           : en-US
IetfLanguageTag                : en-US
DisplayName                    : English (United States)
NativeName                     : English (United States)
EnglishName                    : English (United States)
TwoLetterISOLanguageName       : en
ThreeLetterISOLanguageName     : eng
ThreeLetterWindowsLanguageName : ENU
CompareInfo                    : CompareInfo - en-US
TextInfo                       : TextInfo - en-US
IsNeutralCulture               : False
CultureTypes                   : SpecificCultures, InstalledWin32Cultures, FrameworkCultures
NumberFormat                   : System.Globalization.NumberFormatInfo
DateTimeFormat                 : System.Globalization.DateTimeFormatInfo
Calendar                       : System.Globalization.GregorianCalendar
OptionalCalendars              : {System.Globalization.GregorianCalendar,
                                 System.Globalization.GregorianCalendar}
UseUserOverride                : True
IsReadOnly                     : False

La $C variabile archivia un oggetto Selected.System.Globalization.CultureInfo . L'oggetto è il risultato dell'invio dell'output Get-Culture verso il basso della pipeline su Select-Object. Il parametro Property usa un carattere jolly asterisco (*) per specificare tutte le proprietà sono contenute nell'oggetto.

Out-String usa il parametro InputObject per specificare l'oggetto CultureInfo archiviato nella $C variabile. Gli oggetti in vengono convertiti in $C una stringa.

Nota

Per visualizzare la matrice, archiviare l'output Out-String in una variabile e usare un indice di matrice per visualizzare gli elementi. Per altre informazioni sull'indice della matrice, vedere about_Arrays.

$str = Out-String -InputObject $C -Width 100

Esempio 2: Uso di oggetti

Questo esempio illustra la differenza tra l'utilizzo di oggetti e l'utilizzo di stringhe. Il comando visualizza un alias che include il testo gcm, l'alias per Get-Command.

Get-Alias | Out-String -Stream | Select-String -Pattern "gcm"

Alias           gcm -> Get-Command

Get-Alias ottiene gli oggetti System.Management.Automation.AliasInfo , uno per ogni alias e invia gli oggetti nella pipeline. Out-Stringusa il parametro Stream per convertire ogni oggetto in una stringa anziché concatenare tutti gli oggetti in una singola stringa. Gli oggetti System.String vengono inviati alla pipeline e Select-String usano il parametro Pattern per trovare le corrispondenze per il gcm di testo.

Nota

Se si omette il parametro Stream, il comando visualizza tutti gli alias perché Select-String trova il testo gcm nella singola stringa che Out-String restituisce.

Esempio 3: usare il parametro Width per impedire il troncamento.

Mentre la maggior parte dell'output da Out-String viene eseguito il wrapping alla riga successiva, esistono scenari in cui l'output viene troncato dal sistema di formattazione prima di essere passato a Out-String. È possibile evitare il troncamento usando il parametro Width .

PS> @{TestKey = ('x' * 200)} | Out-String
Name                           Value
----                           -----
TestKey                        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...

PS> @{TestKey = ('x' * 200)} | Out-String -Width 250

Name                           Value
----                           -----
TestKey                        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Parametri

-InputObject

Specifica gli oggetti da scrivere in una stringa. Immettere una variabile che contiene gli oggetti oppure digitare un comando o un'espressione che ottiene gli oggetti.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-NoNewline

Rimuove tutte le nuove linee dall'output generato dal formattatore di PowerShell. Le nuove linee che fanno parte degli oggetti stringa vengono mantenute.

Questo parametro è stato introdotto in PowerShell 6.0.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Stream

Per impostazione predefinita, Out-String restituisce una singola stringa formattata come verrà visualizzata nella console, incluse le intestazioni vuote o le nuove righe finali. Il parametro Stream consente di Out-String restituire ogni riga per una sola riga. L'unica eccezione a questa sono stringhe multilinea. In questo caso, Out-String la stringa verrà comunque restituita come singola stringa multilinea.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Width

Specifica il numero di caratteri di ogni riga di output. Tutti i caratteri aggiuntivi vengono troncati alla riga successiva o troncata a seconda del cmdlet formattatore usato. Il parametro Width si applica solo agli oggetti formattati. Se si omette questo parametro, la larghezza verrà determinata dalle caratteristiche del programma host. Nelle finestre del terminale (console) viene usata la larghezza della finestra corrente come valore predefinito. Le finestre della console di PowerShell sono predefinite per una larghezza di 80 caratteri durante l'installazione.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

PSObject

È possibile eseguire la pipe di qualsiasi oggetto a questo cmdlet.

Output

String

Questo cmdlet restituisce la stringa creata dall'oggetto di input.

Note

I cmdlet che contengono il Out verbo non formattano gli oggetti. I Out cmdlet inviano oggetti al formattatore per la destinazione di visualizzazione specificata.

PowerShell 7.2 ha aggiunto la possibilità di controllare il rendering delle sequenze di escape ANSI. Output decorato anSI che viene passato a Out-String può essere modificato in base all'impostazione $PSStyle.OutputRendering della proprietà. Per altre informazioni, vedere about_ANSI_Terminals.