Compartir vía


Out-String

Genera objetos de entrada como una cadena.

Sintaxis

NoNewLineFormatting (Es el valor predeterminado).

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

StreamFormatting

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

Description

El cmdlet Out-String convierte objetos de entrada en cadenas. De forma predeterminada, Out-String acumula las cadenas y las devuelve como una sola cadena, pero puede usar el parámetro Stream para dirigir Out-String devolver una línea a la vez o crear una matriz de cadenas. Este cmdlet permite buscar y manipular el resultado de cadena como se haría en shells tradicionales cuando la manipulación de objetos es poco práctica.

PowerShell también agrega la función oss, que llama a Out-String -Stream como un método abreviado para usar Out-String en una canalización.

Ejemplos

Ejemplo 1: Obtener la cultura actual y convertir los datos a cadenas

En este ejemplo se obtiene la configuración regional del usuario actual y se convierten los datos del objeto en cadenas.

$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 variable $C almacena un objeto Selected.System.Globalization.CultureInfo. El objeto es el resultado de que Get-Culture envíe la salida por la canalización hacia Select-Object. El parámetro Property usa un comodín asterisco (*) para especificar que todas las propiedades estén contenidas en el objeto .

Out-String usa el parámetro InputObject para especificar el objeto CultureInfo almacenado en la variable $C. Los objetos de $C se convierten en una cadena.

Nota:

Para ver la matriz de Out-String, almacene la salida en una variable y use un índice de matriz para ver los elementos. Para obtener más información sobre el índice de matriz, vea about_Arrays.

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

Ejemplo 2: Trabajar con objetos

En este ejemplo se muestra la diferencia entre trabajar con objetos y trabajar con cadenas. El comando muestra un alias que incluye el texto gcm, el alias de Get-Command.

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

Get-Alias obtiene los objetos System.Management.Automation.AliasInfo, uno para cada alias, y los envía a través de la canalización. Out-String usa el parámetro Stream para convertir cada objeto en una cadena en lugar de concatenar todos los objetos en una sola cadena. Los objetos System.String se envían a la canalización y Select-String usa el parámetro Pattern para buscar coincidencias para el texto gcm.

Nota:

Si omite el parámetro Stream, el comando muestra todos los alias porque Select-String encuentra el texto gcm en la cadena única que Out-String devuelve.

Ejemplo 3: Uso del parámetro Width para evitar el truncamiento

Aunque la mayoría de los resultados de Out-String se ajustan en la línea siguiente, hay escenarios en los que la salida se trunca mediante el sistema de formato antes de pasarse a Out-String. Puede evitar el truncamiento mediante el parámetro 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

Parámetros

-InputObject

Especifica los objetos que se van a escribir en una cadena. Escriba una variable que contenga los objetos, o escriba un comando o expresión que obtenga los objetos.

Propiedades del parámetro

Tipo:PSObject
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-NoNewline

Quita todas las líneas nuevas de la salida generada por el formateador de PowerShell. Se conservan las nuevas líneas que forman parte de los objetos de cadena.

Este parámetro se introdujo en PowerShell 6.0.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

NoNewLineFormatting
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Stream

De forma predeterminada, Out-String genera una cadena única formateada tal como se vería en la consola, incluidos los encabezados en blanco o las nuevas líneas al final. El parámetro Stream permite Out-String generar cada línea una por una. La única excepción a esto son cadenas de varias líneas. En ese caso, Out-String seguirá mostrando la cadena como una sola cadena de varias líneas.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

StreamFormatting
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Width

Especifica el número de caracteres de cada línea de salida. Los caracteres adicionales se ajustan en la siguiente línea o se truncan en función del cmdlet formateador usado. El parámetro Width solo se aplica a los objetos con formato. Si omite este parámetro, el ancho viene determinado por las características del programa host. En las ventanas del terminal (consola), el ancho de la ventana actual se usa como valor predeterminado. Las ventanas de la consola de PowerShell disponen de un ancho de 80 caracteres en la instalación.

Propiedades del parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

PSObject

Puede canalizar cualquier objeto a este cmdlet.

Salidas

String

Este cmdlet devuelve la cadena que crea a partir del objeto de entrada.

Notas

Los cmdlets que contienen el verbo Out no da formato a los objetos. Los cmdlets Out envían objetos al formateador para el destino de presentación especificado.

PowerShell 7.2 agregó la capacidad de controlar cómo se representan las secuencias de escape ANSI. La salida representada con ANSI que se pasa a Out-String se puede modificar en función del valor de la propiedad $PSStyle.OutputRendering. Para obtener más información, vea about_ANSI_Terminals.