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 cmdlet Out-String
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 indirizzare Out-String
per restituire una riga alla volta o creare una matrice di stringhe. Questo cmdlet consente di cercare e modificare l'output della stringa come si farebbe nelle shell tradizionali quando la manipolazione degli oggetti è meno conveniente.
PowerShell aggiunge anche la funzione OSS
che chiama Out-String -Stream
come modo abbreviato per usare Out-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 variabile $C
archivia un oggetto Selected.System.Globalization.CultureInfo. L'oggetto è il risultato di Get-Culture
l'invio dell'output verso il basso della pipeline a Select-Object
. Il parametro Proprietà utilizza un carattere jolly asterisco (*
) per specificare tutte le proprietà nell'oggetto .
Out-String
usa il parametro InputObject per specificare l'oggetto CultureInfo archiviato nella variabile $C
. Gli oggetti in $C
vengono convertiti in una stringa.
Nota
Per visualizzare la matrice di Out-String
, archiviare l'output in una variabile e usare un indice di matrice per visualizzare gli elementi. Per altre informazioni sull'indice di matrice, vedere about_Arrays.
$str = Out-String -InputObject $C -Width 100
Esempio 2: Utilizzo di oggetti
In questo esempio viene illustrata 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 l'oggetti System.Management.Automation.AliasInfo, uno per ogni alias e invia gli oggetti nella pipeline.
Out-String
usa 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 nella pipeline e Select-String
utilizza il parametro pattern per trovare corrispondenze per il testo gcm.
Nota
Se si omette il parametro stream di, il comando visualizza tutti gli alias perché Select-String
trova il testo gcm nella singola stringa restituita Out-String
.
Esempio 3: usare il parametro Width per impedire il troncamento.
Mentre la maggior parte dell'output di Out-String
viene sottoposta a 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 contenente gli oggetti oppure digitare un comando o un'espressione che ottiene gli oggetti .
Tipo: | PSObject |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-NoNewline
Rimuove tutte le nuove righe dall'output generato dal formattatore PowerShell. Le nuove righe che fanno parte degli oggetti stringa vengono mantenute.
Questo parametro è stato introdotto in PowerShell 6.0.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Stream
Per impostazione predefinita, Out-String
restituisce una singola stringa formattata come viene visualizzata nella console, incluse le intestazioni vuote o le nuove righe finali. Il parametro Stream consente Out-String
di generare l'output di ogni riga uno alla sola riga. L'unica eccezione a questa sono stringhe multilinea. In tal caso, Out-String
restituirà comunque la stringa come una singola stringa multilinea.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Width
Specifica il numero di caratteri in ogni riga di output. Tutti i caratteri aggiuntivi vengono inclusi nella riga successiva o troncati a seconda del cmdlet del formattatore usato. Il parametro Width si applica solo agli oggetti formattati. Se si omette questo parametro, la larghezza viene determinata dalle caratteristiche del programma host. Nelle finestre del terminale (console) viene usata la larghezza della finestra corrente come valore predefinito. Per impostazione predefinita, le finestre della console di PowerShell hanno una larghezza di 80 caratteri all'installazione.
Tipo: | Int32 |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe qualsiasi oggetto a questo cmdlet.
Output
Questo cmdlet restituisce la stringa creata dall'oggetto di input.
Note
I cmdlet che contengono il verbo Out
non formattano gli oggetti. I cmdlet Out
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. È possibile modificare l'output anSI decorato a Out-String
in base all'impostazione della proprietà $PSStyle.OutputRendering
. Per altre informazioni, vedere about_ANSI_Terminals.