Share via


Out-String

Gera objetos de entrada como uma cadeia de caracteres.

Syntax

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

Description

O Out-String cmdlet converte objetos de entrada em cadeias de caracteres. Por padrão, Out-String acumula as cadeias de caracteres e as retorna como uma única cadeia de caracteres, mas você pode usar o parâmetro Stream para direcionar Out-String para retornar uma linha de cada vez ou criar uma matriz de cadeias de caracteres. Esse cmdlet permite pesquisar e manipular a saída da cadeia de caracteres como faria em shells tradicionais quando a manipulação de objetos for menos conveniente.

Exemplos

Exemplo 1: obter a cultura atual e converter os dados em cadeias de caracteres

Este exemplo obtém as configurações regionais do usuário atual e converte os dados do objeto em cadeias de caracteres.

$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

A $C variável armazena um objeto Selected.System.Globalization.CultureInfo . O objeto é o resultado do envio da Get-Culture saída pelo pipeline para Select-Object. O parâmetro Property usa um curinga asterisco (*) para especificar que todas as propriedades estão contidas no objeto .

Out-String usa o parâmetro InputObject para especificar o objeto CultureInfo armazenado na $C variável . Os objetos em são convertidos em $C uma cadeia de caracteres.

Observação

Para exibir a Out-String matriz, armazene a saída em uma variável e use um índice de matriz para exibir os elementos. Para obter mais informações sobre o índice de matriz, consulte about_Arrays.

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

Exemplo 2: Trabalhando com objetos

Este exemplo demonstra a diferença entre trabalhar com objetos e trabalhar com cadeias de caracteres. O comando exibe um alias que inclui o texto gcm, o alias para Get-Command.

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

Alias           gcm -> Get-Command

Get-Alias obtém os objetos System.Management.Automation.AliasInfo , um para cada alias e envia os objetos pelo pipeline. Out-Stringusa o parâmetro Stream para converter cada objeto em uma cadeia de caracteres em vez de concatenar todos os objetos em uma única cadeia de caracteres. Os objetos System.String são enviados pelo pipeline e Select-String usam o parâmetro Pattern para localizar correspondências para o gcm de texto.

Observação

Se você omitir o parâmetro Stream, o comando exibirá todos os aliases porque Select-String localizará o texto gcm na única cadeia de caracteres retornadaOut-String.

Exemplo 3: use o parâmetro Width para evitar truncamento.

Embora a maior parte da saída de Out-String seja encapsulada para a próxima linha, há cenários em que a saída é truncada pelo sistema de formatação antes de ser passada para Out-String. Você pode evitar truncamento usando o 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 os objetos a serem gravados em uma cadeia de caracteres. Insira uma variável que contém os objetos ou digite um comando ou uma expressão que obtém os objetos.

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

-NoNewline

Remove todas as novas linhas da saída gerada pelo formatador do PowerShell. Novas linhas que fazem parte dos objetos de cadeia de caracteres são preservadas.

Esse parâmetro foi introduzido no PowerShell 6.0.

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

-Stream

Por padrão, Out-String gera uma única cadeia de caracteres formatada como você veria no console, incluindo quaisquer cabeçalhos em branco ou novas linhas à direita. O parâmetro Stream permite Out-String produzir cada linha uma por uma. A única exceção a isso são cadeias de caracteres de várias linhas. Nesse caso, Out-String ainda produzirá a cadeia de caracteres como uma única cadeia de caracteres de várias linhas.

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

-Width

Especifica o número de caracteres em cada linha de saída. Todos os caracteres adicionais são encapsulados para a próxima linha ou truncados, dependendo do cmdlet de formatador usado. O parâmetro Width aplica-se somente a objetos que estão sendo formatados. Se você omitir esse parâmetro, a largura será determinada pelas características do programa host. Nas janelas do terminal (console), a largura da janela atual é usada como o valor padrão. As janelas do console do PowerShell assumem como padrão uma largura de 80 caracteres na instalação.

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

Entradas

PSObject

Você pode enviar objetos pelo pipeline para Out-String.

Saídas

String

Out-String retorna a cadeia de caracteres que ela cria com base no objeto de entrada.

Observações

Os cmdlets que contêm o Out verbo não formatizam objetos. Os Out cmdlets enviam objetos para o formatador para o destino de exibição especificado.