Out-String
Genera objetos de entrada como una cadena.
Sintaxis
Out-String
[-Width <Int32>]
[-NoNewline]
[-InputObject <PSObject>]
[<CommonParameters>]
Out-String
[-Stream]
[-Width <Int32>]
[-InputObject <PSObject>]
[<CommonParameters>]
Description
El Out-String
cmdlet convierte los 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
para 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 OSS
función que llama Out-String -Stream
como una manera abreviada de usar Out-String
en una canalización.
Ejemplos
Ejemplo 1: Obtener la referencia cultural actual y convertir los datos en 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 $C
variable almacena un objeto Selected.System.Globalization.CultureInfo . El objeto es el resultado de Get-Culture
enviar la salida de la canalización a Select-Object
. El parámetro Property usa un carácter 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 $C
variable. Los objetos de se convierten en $C
una cadena.
Nota:
Para ver la Out-String
matriz, 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, consulte 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 envía los objetos a 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
usan 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
busca el texto gcm en la cadena única que Out-String
devuelve.
Ejemplo 3: Use el parámetro Width para evitar el truncamiento.
Aunque la mayoría de la salida de Out-String
se ajusta a la línea siguiente, hay escenarios en los que el sistema de formato trunca la salida 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. Especifique una variable que contenga los objetos o escriba un comando o una expresión que obtenga los objetos.
Tipo: | PSObject |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Stream
De forma predeterminada, Out-String
genera una sola cadena con formato como lo vería en la consola, incluidos los encabezados en blanco o las nuevas líneas finales. 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á produciendo la cadena como una sola cadena de varias líneas.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Width
Especifica el número de caracteres en cada línea del resultado. Los caracteres adicionales se encapsulan en la siguiente línea o truncados en función del cmdlet formateador usado. El parámetro Width solo se aplica a los objetos con formato. Si este parámetro se omite, el ancho se establece según 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.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar cualquier objeto a este cmdlet.
Salidas
Este cmdlet devuelve la cadena que crea a partir del objeto de entrada.
Notas
Los cmdlets que contienen el Out
verbo no formatear objetos. Los Out
cmdlets 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 decorada con ANSI que se pasa a Out-String
se puede modificar en función del valor de la $PSStyle.OutputRendering
propiedad . Para obtener más información, consulte about_ANSI_Terminals.