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 strings.
Quando 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
criará 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 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 de processo para $Procs
o arquivo Process.txt. O parâmetro Encoding converte a saída para o formato ASCII . O parâmetro Width limita cada linha do 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 do Alias:
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 de tabela para arquivo, o PowerShell usa 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 $PSDefaultParameterValues
o , 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. Este é o mesmo comportamento que o operador de redirecionamento (>>
).
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Confirm
Solicita a sua confirmação antes de executar o cmdlet.
Tipo: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Encoding
Especifica o tipo de codificação para o arquivo de destino. O valor predefinido é 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
O mesmo queunicode
.unicode
Usa UTF-16 com a ordem de bytes little-endian.unknown
O mesmo queunicode
.utf7
Usa UTF-7.utf8
Usa UTF-8.utf32
Usa UTF-32 com a ordem de bytes little-endian.
Tipo: | String |
Valores aceites: | ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
Position: | 1 |
Default value: | Unicode |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-FilePath
Especifica o caminho para o arquivo de saída.
Tipo: | String |
Position: | 0 |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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 |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-InputObject
Especifica os objetos a serem gravados no arquivo. Insira uma variável que contenha os objetos ou digite um comando ou expressão que obtenha os objetos.
Tipo: | PSObject |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | 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. Aspas simples dizem 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 |
Position: | Named |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | 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 existir um arquivo no caminho especificado, Out-File
substitui o arquivo sem aviso.
Tipo: | SwitchParameter |
Aliases: | NoOverwrite |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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 novas linhas são inseridos entre as cadeias de caracteres de saída. Nenhuma nova linha é adicionada após a última cadeia de caracteres de saída.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-WhatIf
Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
-Width
Especifica o número máximo de caracteres em cada linha de saída. Todos os caracteres adicionais são 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 é 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 |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Entradas
Você pode canalizar qualquer objeto para este cmdlet.
Saídas
None
Este cmdlet não retorna nenhuma saída.
Notas
Os objetos de entrada são formatados automaticamente como estariam 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.