Compartilhar via


Out-File

Envia a saída para um arquivo.

Sintaxe

Out-File
   [-FilePath] <string>
   [[-Encoding] <string>]
   [-Append]
   [-Force]
   [-NoClobber]
   [-Width <int>]
   [-NoNewline]
   [-InputObject <psobject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Out-File
   [[-Encoding] <string>]
   -LiteralPath <string>
   [-Append]
   [-Force]
   [-NoClobber]
   [-Width <int>]
   [-NoNewline]
   [-InputObject <psobject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

O Out-File cmdlet envia a saída para um arquivo. Ele usa implicitamente o sistema de formatação do PowerShell para gravar no arquivo. O arquivo recebe a mesma representação de exibição que o terminal. Isso significa que a saída pode não ser ideal para processamento programático, a menos que todos os objetos de entrada sejam cadeias de caracteres. Quando você precisar especificar parâmetros para a saída, use Out-File em vez do operador de redirecionamento (>). Para obter mais informações sobre redirecionamento, consulte about_Redirection.

Exemplos

Exemplo 1: Enviar saída e criar um arquivo

Este exemplo mostra como enviar uma lista dos processos do computador local para um arquivo. Se o arquivo não existir, Out-File cria o arquivo no caminho especificado.

Get-Process | Out-File -FilePath .\Process.txt
Get-Content -Path .\Process.txt

NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
     29    22.39      35.40      10.98   42764   9 Application
     53    99.04     113.96       0.00   32664   0 CcmExec
     27    96.62     112.43     113.00   17720   9 Code

O Get-Process cmdlet obtém a lista de processos em execução no computador local. Os objetos Process são enviados pelo pipeline para o Out-File cmdlet. Out-File usa o parâmetro FilePath e cria um arquivo no diretório atual chamado Process.txt. O Get-Content comando obtém o conteúdo do arquivo e o exibe no console do PowerShell.

Exemplo 2: impedir que um arquivo existente seja substituído

Este exemplo impede que um arquivo existente seja substituído. Por padrão, Out-File substitui os arquivos existentes.

Get-Process | Out-File -FilePath .\Process.txt -NoClobber

Out-File : The file 'C:\Test\Process.txt' already exists.
At line:1 char:15
+ Get-Process | Out-File -FilePath .\Process.txt -NoClobber
+               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

O Get-Process cmdlet obtém a lista de processos em execução no computador local. Os objetos Process são enviados pelo pipeline para o Out-File cmdlet. Out-File usa o parâmetro FilePath e tenta gravar em um arquivo no diretório atual chamado Process.txt. O parâmetro NoClobber impede que o arquivo seja substituído e exibe uma mensagem informando que o arquivo já existe.

Exemplo 3: Enviar saída para um arquivo no formato ASCII

Este exemplo mostra como codificar a saída com um tipo de codificação específico.

$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ASCII -Width 50

O Get-Process cmdlet obtém a lista de processos em execução no computador local. Os objetos Process são armazenados na variável $Procs. Out-File usa o parâmetro FilePath e cria um arquivo no diretório atual chamado Process.txt. O parâmetro InputObject passa os objetos $Procs de processo para o arquivo Process.txt. O parâmetro Encoding converte a saída para o formato ASCII . O parâmetro Width limita cada linha no arquivo a 50 caracteres, portanto, alguns dados podem ser truncados.

Exemplo 4: Usar um provedor e enviar a saída para um arquivo

Este exemplo mostra como usar o Out-File cmdlet quando você não está em uma unidade de provedor FileSystem . Use o Get-PSProvider cmdlet para exibir os provedores em seu computador local. Para obter mais informações, consulte about_Providers.

PS> Set-Location -Path Alias:

PS> Get-Location

Path
----
Alias:\

PS> Get-ChildItem | Out-File -FilePath C:\TestDir\AliasNames.txt

PS> Get-Content -Path C:\TestDir\AliasNames.txt

CommandType     Name
-----------     ----
Alias           % -> ForEach-Object
Alias           ? -> Where-Object
Alias           ac -> Add-Content
Alias           cat -> Get-Content

O Set-Location comando usa o parâmetro Path para definir o local atual para o provedor Alias:de registro. O Get-Location cmdlet exibe o caminho completo para Alias:. Get-ChildItem envia objetos pelo pipeline para o Out-File cmdlet. Out-File usa o parâmetro FilePath para especificar o caminho completo e o nome do arquivo para a saída, C:\TestDir\AliasNames.txt. O Get-Content cmdlet usa o parâmetro Path e exibe o conteúdo do arquivo no console do PowerShell.

Exemplo 5: Definir a largura de saída do arquivo para todo o escopo

Este exemplo usa $PSDefaultParameterValues para definir o Width parâmetro para todas as invocações de e os operadores de Out-File redirecionamento (> e >>) para 2000. Isso garante que, em todos os lugares dentro do escopo atual em que você envia dados formatados em tabela para o arquivo, o PowerShell use uma largura de linha de 2000 em vez de uma largura de linha determinada pela largura do console do host do PowerShell.

function DemoDefaultOutFileWidth() {
    try {
        $PSDefaultParameterValues['out-file:width'] = 2000

        $logFile = "$pwd\logfile.txt"

        Get-ChildItem Env:\ > $logFile

        Get-Service -ErrorAction Ignore |
            Format-Table -AutoSize |
            Out-File $logFile -Append

        Get-Process | Format-Table Id,SI,Name,Path,MainWindowTitle >> $logFile
    }
    finally {
        $PSDefaultParameterValues.Remove('out-file:width')
    }
}

DemoDefaultOutFileWidth

Para obter mais informações sobre $PSDefaultParameterValueso , consulte about_Preference_Variables.

Parâmetros

-Append

Adiciona a saída ao final de um arquivo existente. Se nenhuma codificação for especificada, o cmdlet usará a codificação padrão. Essa codificação pode não corresponder à codificação do arquivo de destino. Esse é o mesmo comportamento do operador de redirecionamento (>>).

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

Tipo:SwitchParameter
Aliases:cf
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Encoding

Especifica o tipo de codificação para o arquivo de destino. O valor padrão é unicode.

Os valores aceitáveis para este parâmetro são os seguintes:

  • ascii Usa o conjunto de caracteres ASCII (7 bits).
  • bigendianunicode Usa UTF-16 com a ordem de bytes big-endian.
  • default Usa a codificação que corresponde à página de código ativa do sistema (geralmente ANSI).
  • oem Usa a codificação que corresponde à página de código OEM atual do sistema.
  • string Igual a unicode.
  • unicode Usa UTF-16 com a ordem de bytes little-endian.
  • unknown Igual a unicode.
  • utf7 Usa UTF-7.
  • utf8 Usa UTF-8.
  • utf32 Usa UTF-32 com a ordem de bytes little-endian.
Tipo:String
Valores aceitos:ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Cargo:1
Valor padrão:Unicode
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-FilePath

Especifica o caminho para o arquivo de saída.

Tipo:String
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Force

Substitui o atributo somente leitura e substitui um arquivo somente leitura existente. O parâmetro Force não substitui as restrições de segurança.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-InputObject

Especifica os objetos a serem gravados no arquivo. Insira uma variável que contém os objetos ou digite um comando ou uma expressão que obtém os objetos.

Tipo:PSObject
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-LiteralPath

Especifica o caminho para o arquivo de saída. O parâmetro LiteralPath é usado exatamente como é digitado. Caracteres curinga não são aceitos. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. As aspas simples informam ao PowerShell para não interpretar nenhum caractere como sequências de escape. Para obter mais informações, consulte about_Quoting_Rules.

Tipo:String
Aliases:PSPath
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-NoClobber

NoClobber impede que um arquivo existente seja substituído e exibe uma mensagem informando que o arquivo já existe. Por padrão, se um arquivo existir no caminho especificado, Out-File o substituirá o arquivo sem aviso.

Tipo:SwitchParameter
Aliases:NoOverwrite
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-NoNewline

Especifica que o conteúdo gravado no arquivo não termina com um caractere de nova linha. As representações de cadeia de caracteres dos objetos de entrada são concatenadas para formar a saída. Nenhum espaço ou nova linha é inserido entre as strings de saída. Nenhuma nova linha é adicionada após a última cadeia de caracteres de saída.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Tipo:SwitchParameter
Aliases:wi
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Width

Especifica o número máximo de caracteres em cada linha de saída. Quaisquer eventuais caracteres adicionais ficam truncados, não encapsulados. Se esse parâmetro não for usado, a largura será determinada pelas características do host. O padrão para o console do PowerShell é de 80 caracteres. Se você quiser controlar a largura de todas as invocações de, bem como os operadores de redirecionamento ( e ), defina $PSDefaultParameterValues['out-file:width'] = 2000 antes de Out-File usar Out-File.>>>

Tipo:Int32
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

PSObject

Você pode canalizar qualquer objeto para esse cmdlet.

Saídas

None

Esse cmdlet não retorna nenhuma saída.

Observações

Os objetos de entrada são formatados automaticamente como seriam no terminal, mas você pode usar um Format-* cmdlet para controlar explicitamente a formatação da saída para o arquivo. Por exemplo, Get-Date | Format-List | Out-File out.txt

Para enviar a saída de um comando do PowerShell para o Out-File cmdlet, use o pipeline. Como alternativa, você pode armazenar dados em uma variável e usar o parâmetro InputObject para passar dados para o Out-File cmdlet.

Out-File salva dados em um arquivo, mas não produz nenhum objeto de saída para o pipeline.