Imprimir arquivos do CMD ou PowerShell no Windows

Última atualização: 01/09/2025
autor: Isaac
  • Out-Printer envia objetos ou texto para a impressora (Windows) e não retorna nenhuma saída no pipeline.
  • IMPRIMA em CMD imprime arquivos de texto e permite que você escolha um dispositivo com /D.
  • Antes de imprimir, filtre e consolide com Get-Content, curingas e -Exclude para evitar loops.

Imprimir arquivos do CMD ou PowerShell

Se você trabalha no Windows e se sente confortável usando a linha de comando, mais cedo ou mais tarde vai querer enviar documentos para a impressora sem abrir nenhum aplicativo gráfico. Imprimir a partir do CMD ou do PowerShell é rápido, permite a criação de scripts e é perfeito para automatizar tarefas do dia a dia, desde o envio de um arquivo TXT até a impressão da saída de um comando diretamente no papel.

Neste guia, explicarei, de forma prática, os dois principais métodos: o cmdlet Out-Printer do PowerShell e o comando PRINT do Prompt de Comando . Você também verá como preparar arquivos, filtrar conteúdo, evitar erros comuns e encadear comandos para controlar com precisão o que será impresso. Tudo isso é abordado com sintaxe, exemplos e nuances importantes que você deve conhecer.

Opções para impressão no Windows a partir do console

No Windows, você tem duas abordagens complementares. Por um lado, o PowerShell oferece o cmdlet Out-Printer para enviar a saída de um comando ou objeto para a impressora (seja a padrão ou uma específica). É simples, funciona por meio de um pipeline e herda as configurações padrão da impressora , sem expor os controles de formatação no próprio cmdlet.

Por outro lado, o Prompt de Comando (CMD) mantém o clássico comando PRINT para texto, com a opção de escolher o dispositivo. É um utilitário veterano focado em arquivos de texto , útil quando você não precisa de todos os recursos do PowerShell ou ao trabalhar com scripts em lote.

Opções para impressão a partir do console no Windows

Um ponto importante: o cmdlet Out-Printer só existe no Windows (não no macOS ou Linux ). Se você usa o PowerShell em outras plataformas, esse cmdlet não está disponível , então você terá que procurar alternativas específicas para esse ambiente, como imprimir a partir do terminal no Linux.

Em ambos os casos, se você não especificar uma impressora, a impressora padrão do sistema será usada. Quando precisar apontar para uma impressora de rede, você pode especificar seu nome UNC com o comando Out-Printer e, no CMD, o nome do dispositivo correspondente com o comando PRINT.

Out-Printer em detalhes: sintaxe, parâmetros e comportamento

Este é o esqueleto do cmdlet para sua referência. Observe os parâmetros opcionais `Name` e `InputObject` , e que ele suporta os parâmetros padrão do PowerShell CommonParameters.

Out-Printer  <String>]  

Descrição resumida do comportamento: A opção Out-Printer envia a saída para a impressora padrão ou para outra impressora, caso você especifique uma. Ela não oferece opções de formatação ou controles de impressão ; as configurações padrão da impressora selecionada são utilizadas.

  • plataforma: Janelas.
  • Formato: Os cmdlets com o verbo Out não formatam; eles renderizam e enviam para um destino de apresentação.
  • Saída em canalização: não emite objetos. Se você canalizar a saída para Get-Member, verá que não há nada para examinar.

Parâmetros principais: são poucos e simples, o que agiliza seu uso em scripts e no console interativo.

  • -Nome (alias: PrinterName). Tipo: String, Posição: 0, Opcional. Indica a impressora de destino.
  • -InputObject. Tipo: PSObject. Aceita valores canalizados, opcional. Este é o objeto enviado para a impressora.
  • Parâmetros comuns: -Depuração, -AçãoDeErro, -VariávelDeErro, -AçãoDeInformação, -VariávelDeInformação, -BufferDeSaída, -VariávelDeSaída, -VariávelDePipeline, -AçãoDeProgresso, -Verbose, -AçãoDeAviso, -VariávelDeAviso.

Entradas e saídas: Você pode usar qualquer PSObject como entrada , e o cmdlet não retorna nada (OutputType: None). Isso o torna ideal como ponto final de um pipeline.

  Descubra como ativar ou desativar o Hey Siri no Apple Watch

Observações operacionais: Quando o cmdlet Out-Printer recebe um objeto "bruto", o PowerShell insere automaticamente um cmdlet de formatação antes de renderizá-lo. Isso garante que o que chega à impressora tenha uma representação em texto , mesmo que você não especifique o formato manualmente.

Cmdlet Out-Printer no PowerShell

Exemplos práticos com Out-Printer

Imprimir um arquivo na impressora padrão, mesmo que Out-Printer não tenha o parâmetro -Path, é muito simples: basta ler o arquivo e redirecioná-lo para a impressora.

Get-Content -Path ./readme.txt | Out-Printer

Nesse padrão, o cmdlet Get-Content extrai o conteúdo e o cmdlet Out-Printer o envia para a impressora padrão. Use-o para arquivos TXT, logs ou saídas que já sejam texto simples.

Imprimir uma string em uma impressora remota (UNC) permite testar rapidamente a conectividade e a fila de impressão. É ideal para verificar se o nome compartilhado da impressora está correto.

"Hello, World" | Out-Printer -Name "\\Server01\Prt-6B Color"

Se você quiser imprimir a ajuda completa de um cmdlet, pode extrair o conteúdo de Get-Help e enviá-lo como um objeto. A chave é usar -InputObject com o valor recuperado anteriormente.

$H = Get-Help -Full Get-CimInstance
Out-Printer -InputObject $H

Lembre-se de que o cmdlet Out-Printer não controla as opções de impressão (páginas, bandeja, frente e verso, etc.). As configurações padrão da impressora serão sempre aplicadas , portanto, qualquer ajuste fino terá que ser feito no próprio dispositivo ou com ferramentas específicas que não sejam o cmdlet.

Imprimir a partir do prompt de comando com PRINT

O comando PRINT é nativo do Windows 10/11 e das versões modernas do Windows Server. Sua finalidade é simples: imprimir arquivos de texto a partir do CMD.

PRINT    archivo ]

A opção /D especifica o dispositivo de impressão. Se você não especificar um, será usada a impressora padrão . É uma ferramenta perfeita se o seu fluxo de trabalho ainda for baseado em lotes e você trabalhar com arquivos TXT puros.

Um exemplo básico de envio de um arquivo .txt para o dispositivo padrão seria tão simples quanto: abrir o CMD no diretório onde o arquivo está localizado e digitar PRINT nome_do_arquivo.txt . Se você estiver usando uma impressora mapeada ou um nome de dispositivo específico, adicione-o com /D.

Preparar e selecionar o que imprimir com cmdlets de arquivo

Antes de imprimir, é uma boa ideia decidir quais arquivos colocar em fila, movê-los para uma pasta temporária ou filtrá-los por critérios. O PowerShell se destaca nesse aspecto com seus cmdlets de sistema de arquivos.

A listagem do conteúdo com Get-ChildItem (aliases: gci, dir, ls) e a exibição de arquivos ocultos ou de sistema são imediatas com -Force. Adicione -Recurse se desejar explorar subpastas com mais detalhes.

Get-ChildItem -Path C:\ -Force
Get-ChildItem -Path C:\ -Force -Recurse

Se você busca uma filtragem mais sofisticada, combine o gci com o Where-Object para basear sua filtragem em propriedades como data e tamanho. Esse padrão é ideal para gerar listas de inventário para impressão.

Get-ChildItem -Path $env:ProgramFiles -Recurse -Include *.exe | 
  Where-Object { ($_.LastWriteTime -gt '2005-10-01') -and ($_.Length -ge 1mb) -and ($_.Length -le 10mb) }

Gerenciamento de arquivos antes da impressão

Copiar ou versionar arquivos de trabalho é muito fácil com o Copy-Item, e você pode verificar se já existiam anteriormente com o Test-Path. Use -Force para sobrescrever destinos somente leitura.

if (Test-Path -Path $PROFILE) {
  Copy-Item -Path $PROFILE -Destination $($PROFILE -replace 'ps1$', 'bak') -Force
}

Para preparar as estruturas de pastas de impressão, crie diretórios e arquivos vazios com o cmdlet New-Item. Diferencie entre -ItemType Directory e -ItemType File de acordo com suas necessidades.

New-Item -Path 'C:\temp\Nueva Carpeta' -ItemType Directory
New-Item -Path 'C:\temp\Nueva Carpeta\listado.txt' -ItemType File

Se você precisar limpar pastas intermediárias, o comando Remove-Item exclui arquivos ou diretórios. Quando houver conteúdo e você quiser evitar confirmações, adicione o parâmetro -Recurse.

Remove-Item -Path C:\temp\ColaTemporal -Recurse

Você pode até mesmo mapear uma pasta como uma unidade lógica temporária com o cmdlet New-PSDrive para encurtar os caminhos durante o processo. Com a opção -Persist, somente caminhos remotos são suportados e integrados ao Explorador de Arquivos.

New-PSDrive -Name P -Root $env:ProgramFiles -PSProvider FileSystem

Leia, escreva e combine textos antes de imprimir

O Get-Content lê arquivos de texto como uma matriz (cada linha é um elemento). Isso torna muito conveniente visualizar, filtrar ou transformar o conteúdo antes de imprimir.

$lineas = Get-Content -Path .\listado.txt
$lineas.Length

Para gerar conteúdo dinamicamente, Write-Output (também conhecido como: write, echo) e redirecionamento são seus aliados. Redirecione com > para criar/sobrescrever e com >> para adicionar.

Write-Output "Encabezado del informe" > informe.txt
Write-Output "Nueva línea" >> informe.txt

Se você deseja clonar conteúdo, pode usar o cmdlet Get-Content com redirecionamento em vez de Copy-Item. Ele funciona bem com padrões e curingas ao consolidar texto.

Get-Content benjamin.txt > benjamin2.txt
Get-Content *.log > combinado.log

Cuidado com um erro clássico: redirecionar o comando `Get-Content *.txt` para um arquivo que também termina em `.txt` no mesmo diretório pode criar um loop infinito, pois o arquivo de destino se torna a origem. Você pode abortar com `Control-C`, mas é melhor prevenir do que remediar.

Get-Content *.txt > gran.txt   # Riesgo: gran.txt coincide con *.txt

A solução mais adequada é excluir o arquivo de destino usando o parâmetro -Exclude. Isso impede que sua própria saída seja incluída no conjunto de entrada.

Get-Content *.txt -Exclude gran.txt > gran.txt

Use os caracteres curinga a seu favor para selecionar exatamente o que você precisa (por exemplo, ben*.txt). Uma seleção bem feita reduz surpresas e agiliza seu fluxo de trabalho.

  Inserir propriedades de documentos do Word com FileName \p: o guia definitivo para automatizar seus documentos

Busca rápida e contagem antes de enviar para a impressora

Para localizar fragmentos específicos em vários arquivos, o `Select-String` (também conhecido como `sls`) é como ter o `grep` integrado ao PowerShell. Perfeito para validar se o texto a ser impresso contém o que você espera.

Select-String "existencia única" *.txt

E se você precisar de métricas rápidas, use o comando Measure-Object (medida) para contar linhas, palavras e caracteres. Adicione -IgnoreWhiteSpace se quiser subtrair espaços em branco.

Get-Content benjamin.txt | Measure-Object -Line -Word -Character
Get-Content *.txt | Measure-Object -Line -Word -Character -IgnoreWhiteSpace

Essa verificação prévia economiza papel e tempo, especialmente para grandes tiragens. Meça, verifique e imprima com o Out-Printer ou o PRINT, com a certeza de que o resultado da impressão será exatamente o que você precisa.

Fluxos de trabalho típicos para impressão a partir do console

Cenário 1: Imprimir um arquivo TXT gerado por um processo. Ele lê, verifica algumas linhas e envia para a impressora padrão.

Get-Content .\resultado.txt -TotalCount 10
Get-Content .\resultado.txt | Out-Printer

Cenário 2: Enviar uma etiqueta ou cabeçalho para uma impressora compartilhada. Ideal para cheques ou impressoras de rede.

"Etiqueta: Pedido 12345" | Out-Printer -Name "\\SrvPrint\HP-Laser"

Cenário 3: Consolide vários registros do dia e imprima-os. Evite o loop de saída com -Exclude e filtre por padrão de data, se necessário.

Get-Content .\logs\*.2025-09-*.log -Exclude resumen.log > resumen.log
Get-Content resumen.log | Out-Printer

Cenário 4 (CMD): Imprimir rapidamente um arquivo TXT a partir de um script em lote . Útil quando o PowerShell não faz parte do fluxo de trabalho (consulte Abrindo arquivos PRN ).

PRINT /D:PRN01 C:\reportes\hoy.txt

Dicas de navegação e produtividade relacionadas

Para navegar entre pastas: Set-Location (sl, cd) e o recurso de autocompletar com a tecla Tab evitam erros de digitação. Você pode combinar caminhos relativos como ..\.. para navegar entre ramificações.

Se você alterna frequentemente entre dois locais, Push-Location (pushd) e Pop-Location (popd) são muito convenientes: você salva o local atual na pilha e retorna com um único comando.

Você prefere visualizar algo no Explorador de Arquivos? Execute `explorer .` a partir da pasta atual. Dessa forma, você poderá verificar visualmente o que vai imprimir no console.

Renomear ou mover arquivos com Mover-Item (mv) e copiá-los com Copiar-Item (cp) é muito rápido. Tenha cuidado ao usar rm (Remover-Item): ele exclui arquivos permanentemente , não apenas os move para a Lixeira.

  Bloquear macros não assinadas com GPO e Intune no Office

Se você estiver trabalhando com listas (por exemplo, computadores ou IPs) em um arquivo TXT, o cmdlet Get-Content retorna uma matriz; você pode usá-la como base para gerar um relatório e enviá-lo para o cmdlet Out-Printer. O pipeline transforma esses fluxos em etapas concisas e repetíveis.

Ajuda integrada e parâmetros úteis

O cmdlet Get-Help exibe a sintaxe e os parâmetros de qualquer cmdlet. Se você adicionar o parâmetro -Online, a ajuda detalhada será aberta no seu navegador . Esta é a maneira mais rápida de esclarecer dúvidas específicas.

Get-Help Out-Printer
Get-Help Get-Content -Online

No caso do cmdlet Get-Content, o parâmetro -TotalCount permite ler apenas as primeiras X linhas e o parâmetro -Tail as últimas X. Eles são perfeitos para verificar uma seção antes da impressão e evitar surpresas no papel.

Get-Content .\informe.txt -TotalCount 10
Get-Content .\informe.txt -Tail 10

Você já viu que o parâmetro `-Exclude` é fundamental para impedir que o arquivo de destino se torne a origem durante a consolidação. Lembre-se disso ao trabalhar com curingas e redirecionamentos.

Limitações, avisos e boas práticas

O Out-Printer não possui controles de formatação, margem ou bandeja; ele aceita as configurações padrão da impressora . Se você precisar de mais controle, procure ferramentas específicas do fabricante ou gere um PDF no formato desejado e imprima-o (por exemplo, imprimir como PDF no Windows 11 ).

O cmdlet Out-Printer não envia a saída para o pipeline, por design. Não tente encadear sua saída com o cmdlet Get-Member : não haverá nenhum objeto para examinar. Use-o como a etapa final do pipeline.

Se você for imprimir grandes volumes de texto, verifique o tamanho e o número de linhas com antecedência usando a ferramenta Medir-Objeto. Uma verificação de 5 segundos pode economizar muitas páginas e tinta.

Ao usar o comando PRINT no CMD, lembre-se de que ele é voltado para arquivos de texto. Para conteúdo não textual, o PowerShell e o Out-Printer oferecem renderização mais flexível graças a pipelines e à pré-conversão de objetos em texto.

E se algo ficar "pensando" por muito tempo (por exemplo, um loop devido a um redirecionamento mal projetado), interrompa com Control-C e revise os comandos. Evite usar o mesmo padrão de entrada que o nome do arquivo de saída no mesmo diretório.

Este tutorial prepara você para imprimir com confiança a partir da linha de comando: você aprenderá a usar os comandos Out-Printer e PRINT, como preparar e filtrar arquivos, medir conteúdo, pesquisar sequências de caracteres e evitar problemas como loops de redirecionamento. Com essas ferramentas, você poderá criar fluxos de trabalho robustos, repetíveis e rápidos que enviam exatamente o que você deseja, para a impressora desejada, sem depender da interface gráfica.

powershell cmd imprimir
Artigo relacionado:
Como imprimir facilmente do CMD ou PowerShell