Out-String
Restituisce gli oggetti di input come stringa.
Sintassi
NoNewLineFormatting (impostazione predefinita).
Out-String
[-Width <Int32>]
[-NoNewline]
[-InputObject <PSObject>]
[<CommonParameters>]
StreamFormatting
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.
Annotazioni
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.
Annotazioni
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 .
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 |
-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.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
NoNewLineFormatting
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
StreamFormatting
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| 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
È possibile passare qualsiasi oggetto come input a questo cmdlet.
Output
String
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.