Imprimir archivos desde CMD o PowerShell en Windows

Última actualización: 01/09/2025
Autor: Isaac
  • Out-Printer envía objetos o texto a la impresora (Windows) y no devuelve salida en la canalización.
  • PRINT en CMD imprime archivos de texto y permite elegir dispositivo con /D.
  • Antes de imprimir, filtra y consolida con Get-Content, comodines y -Exclude para evitar bucles.

Imprimir archivos desde CMD o PowerShell

Si trabajas en Windows y te mueves con soltura por la consola, tarde o temprano querrás mandar documentos a la impresora sin abrir ninguna aplicación gráfica. Imprimir desde CMD o PowerShell es rápido, scriptable y perfecto para automatizar tareas del día a día, desde mandar un TXT hasta volcar la salida de un comando directamente a papel.

En esta guía te explico, con enfoque práctico, las dos vías principales: el cmdlet de PowerShell Out-Printer y el comando PRINT del Símbolo del sistema. Además verás cómo preparar archivos, filtrar contenido, evitar errores típicos y encadenar comandos para controlar al milímetro lo que imprimes. Todo ello con sintaxis, ejemplos y matices importantes que conviene conocer.

Opciones para imprimir en Windows desde la consola

En Windows tienes dos caminos complementarios. Por un lado, PowerShell ofrece el cmdlet Out-Printer para enviar la salida de un comando o un objeto a la impresora (por defecto o una específica). Es directo, funciona por canalización y hereda la configuración predeterminada de la impresora, sin exponer controles de formato en el propio cmdlet.

Por otro, el Símbolo del sistema (CMD) mantiene el comando clásico PRINT para textos, con opción de elegir dispositivo. Es una utilidad veterana centrada en archivos de texto, útil cuando no necesitas toda la potencia de PowerShell o trabajas con scripts batch.

Opciones para imprimir desde consola en Windows

Un matiz clave: Out-Printer existe únicamente en Windows (no en macOS o Linux). Si usas PowerShell en otras plataformas, este cmdlet no está disponible, así que tendrás que buscar alternativas propias de ese entorno, como imprimir desde terminal en Linux.

En ambos casos, si no indicas impresora, se usará la predeterminada del sistema. Cuando necesites apuntar a una impresora de red, podrás especificar su nombre UNC con Out-Printer y, en CMD, el dispositivo correspondiente en PRINT.

Out-Printer en detalle: sintaxis, parámetros y comportamiento

Este es el esqueleto del cmdlet para que tengas la referencia a mano. Fíjate en los parámetros opcionales Name e InputObject y en que admite los CommonParameters habituales de PowerShell.

Out-Printer  <String>]  

Descripción resumida del comportamiento: Out-Printer envía la salida a la impresora predeterminada o a otra si la indicas. No ofrece opciones de formato ni controles del trabajo de impresión; se usan los valores por defecto de la impresora seleccionada.

  • Plataforma: Windows.
  • Formato: los cmdlets con verbo Out no dan formato; representan y envían a un destino de presentación.
  • Salida en canalización: no emite objetos. Si canalizas su salida a Get-Member, verás que no hay nada que examinar.

Parámetros principales: son pocos y sencillos, lo que agiliza su uso en scripts y en consola interactiva.

  • -Name (alias: PrinterName). Tipo: String, Posición: 0, Opcional. Indica la impresora destino.
  • -InputObject. Tipo: PSObject. Acepta valores por canalización, opcional. Es el objeto que se envía a la impresora.
  • CommonParameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, -WarningVariable.

Entradas y salidas: puedes canalizar cualquier PSObject como entrada, y el cmdlet no devuelve nada (OutputType: None). Eso lo hace ideal como punto final de un pipeline.

  ¿Qué hacer si Avast SecureLine VPN no funciona?

Notas operativas: cuando a Out-Printer le llega un objeto “en bruto”, PowerShell intercalará automáticamente un cmdlet de formato antes de representarlo. Esto garantiza que lo que llegue a la impresora tenga una representación textual, aunque tú no especifiques el formato manualmente.

Cmdlet Out-Printer en PowerShell

Ejemplos prácticos con Out-Printer

Imprimir un archivo a la impresora predeterminada aunque Out-Printer no tenga -Path es muy directo: basta con leer el archivo y canalizarlo.

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

En este patrón, Get-Content extrae el contenido y Out-Printer lo manda a la impresora por defecto. Úsalo para TXT, logs o salidas que ya sean texto plano.

Imprimir una cadena en una impresora remota (UNC) te permite probar rápidamente conectividad y cola de impresión. Es ideal para verificar que el nombre compartido de la impresora es correcto.

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

Si lo que quieres es imprimir la ayuda completa de un cmdlet, puedes volcar el contenido de Get-Help y enviarlo como objeto. La clave está en usar -InputObject con el valor recuperado previamente.

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

Recuerda que Out-Printer no controla opciones de impresión (páginas, bandeja, dúplex…). Se aplicarán siempre los valores por defecto de la impresora, por lo que cualquier ajuste fino tendrás que hacerlo en el dispositivo o con herramientas específicas ajenas al cmdlet.

Imprimir desde el Símbolo del sistema con PRINT

El comando PRINT es nativo de Windows 10/11 y ediciones de Windows Server modernas. Su cometido es sencillo: imprimir archivos de texto desde CMD.

PRINT    archivo ]

La opción /D especifica el dispositivo de impresión. Si no lo indicas, usará la impresora predeterminada. Es una utilidad perfecta si tu flujo sigue en batch y trabajas con TXT puros.

Un ejemplo básico enviando un .txt al dispositivo por defecto sería tan simple como: abrir CMD donde está el archivo y lanzar PRINT nombre.txt. Si usas una impresora mapeada o un nombre de dispositivo específico, añádelo con /D.

Preparar y seleccionar lo que vas a imprimir con cmdlets de archivo

Antes de imprimir conviene decidir qué archivos van a cola, moverlos a una carpeta temporal o filtrar por criterios. PowerShell brilla aquí con los cmdlets de sistema de archivos.

Listar contenidos con Get-ChildItem (alias: gci, dir, ls) y mostrar archivos ocultos o del sistema es inmediato con -Force. Añade -Recurse si quieres profundizar en subcarpetas.

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

Si buscas filtrado más elaborado, combina gci con Where-Object para basarte en propiedades como fecha y tamaño. Este patrón es ideal para generar listados imprimibles de inventario.

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

Gestión de archivos previa a imprimir

Copiar o versionar archivos de trabajo es pan comido con Copy-Item, y puedes comprobar la existencia previa con Test-Path. Usa -Force para sobrescribir destinos de solo lectura.

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

Para preparar estructuras de carpetas de impresión, crea directorios y archivos vacíos con New-Item. Diferencia -ItemType Directory y -ItemType File según lo que necesites.

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

Si necesitas limpiar carpetas intermedias, Remove-Item borra archivos o directorios. Cuando haya contenido y quieras evitar confirmaciones, añade -Recurse.

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

Incluso puedes mapear una carpeta como unidad lógica temporal con New-PSDrive para acortar rutas durante el proceso. Con -Persist solo se admiten rutas remotas y se integran en el Explorador.

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

Leer, escribir y combinar textos antes de imprimir

Get-Content lee archivos de texto como una matriz (cada línea es un elemento). Esto hace muy cómodo previsualizar, filtrar o transformar antes de imprimir.

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

Para generar contenido sobre la marcha, Write-Output (alias: write, echo) y la redirección son tus aliados. Redirecciona con > para crear/sobrescribir y con >> para anexar.

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

Si quieres clonar contenidos, puedes usar Get-Content con redirección en vez de Copy-Item. Funciona bien con patrones y comodines cuando vas a consolidar textos.

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

Atención a un clásico: redirigir Get-Content *.txt hacia un archivo que también termina en .txt del mismo directorio puede crear un bucle “sin fin” porque el archivo destino se convierte en fuente. Abortas con Control-C, pero es mejor prevenir.

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

La solución limpia es excluir el archivo de destino con el parámetro -Exclude. Así evitas que tu propio resultado entre en el conjunto de entrada.

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

Usa comodines a tu favor para seleccionar justo lo que necesitas (por ejemplo, ben*.txt). Una selección bien afinada reduce sorpresas y acelera tu flujo.

  Solución de problemas de Boot Camp con Windows 10

Búsqueda y recuentos rápidos antes de mandar a la impresora

Para localizar fragmentos concretos en varios archivos, Select-String (alias: sls) es como tener grep integrado en PowerShell. Perfecto para validar que el texto a imprimir contiene lo que esperas.

Select-String "existencia única" *.txt

Y si necesitas métricas rápidas, canaliza a Measure-Object (measure) para contar líneas, palabras y caracteres. Añade -IgnoreWhiteSpace si quieres descontar espacios.

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

Esta verificación previa ahorra papel y tiempo, sobre todo en lotes grandes. Mide, revisa, y luego imprime con Out-Printer o con PRINT con la tranquilidad de que lo que sale por la impresora es exactamente lo que necesitas.

Flujos de trabajo típicos para imprimir desde consola

Escenario 1: imprimir un TXT generado por un proceso. Lee, revisa un par de líneas y manda a impresora por defecto.

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

Escenario 2: enviar una etiqueta o cabecera a una impresora compartida. Ideal para comprobaciones o impresoras de red.

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

Escenario 3: consolidar varios logs del día y luego imprimir. Evita el bucle de salida con -Exclude y filtra por patrón de fecha si hace falta.

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

Escenario 4 (CMD): imprimir rápidamente un TXT desde un script batch. Útil cuando PowerShell no forma parte del flujo (ver abrir archivos PRN).

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

Trucos de navegación y productividad relacionados

Para moverte entre carpetas: Set-Location (sl, cd) y el autocompletado por tabulador te ahorran tecleo y errores. Puedes combinar rutas relativas como ..\.. para saltar ramas.

Si alternas mucho entre dos ubicaciones, Push-Location (pushd) y Pop-Location (popd) son comodísimos: guardas la ubicación actual en la pila y vuelves con un solo comando.

¿Prefieres ver algo en el Explorador? Lanza explorer . desde la carpeta actual. Así verificas visualmente lo que luego vas a imprimir desde consola.

Renombrar o mover archivos con Move-Item (mv) y copiarlos con Copy-Item (cp) es rapidísimo. Ojo al usar rm (Remove-Item): borra de manera permanente, no va a la papelera.

  Cómo solucionar errores de reconocimiento de dispositivos USB en Windows

Si trabajas con listas (por ejemplo, equipos o IPs) en un TXT, Get-Content devuelve un array; puedes usarlo como base para generar un informe y enviarlo a Out-Printer. La canalización convierte estos flujos en pasos concisos y repetibles.

Ayuda integrada y parámetros útiles

Get-Help te muestra la sintaxis y parámetros de cualquier cmdlet. Si añades -Online, abrirá la ayuda detallada en el navegador. Es la vía más rápida para aclarar dudas puntuales.

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

En el caso de Get-Content, -TotalCount te deja leer solo las primeras X líneas y -Tail las últimas X. Son perfectos para revisar un trozo antes de imprimir y evitar sorpresas en papel.

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

Ya viste que -Exclude es clave para evitar que el archivo destino se convierta en fuente durante una consolidación. Tenlo presente cuando trabajes con comodines y redirecciones.

Limitaciones, advertencias y buenas prácticas

Out-Printer no tiene controles de formato, márgenes o bandejas; acepta la configuración por defecto de la impresora. Si necesitas más control, busca herramientas específicas del fabricante o genera un PDF con el formato deseado y luego imprímelo (por ejemplo, imprimir como PDF en Windows 11).

Out-Printer no emite salida en la canalización, por diseño. No intentes encadenar su resultado a Get-Member: no habrá objeto que examinar. Úsalo como paso final del pipeline.

Si vas a imprimir grandes volúmenes de texto, comprueba antes tamaño y número de líneas con Measure-Object. Una verificación de 5 segundos puede ahorrar muchas páginas y tinta.

Cuando uses PRINT en CMD, recuerda su enfoque en archivos de texto. Para contenido no textual, PowerShell y Out-Printer ofrecen una representación más flexible gracias al pipeline y a la conversión previa de objetos a texto.

Y si algo se queda “pensando” más de la cuenta (por ejemplo, un bucle por redirección mal planteada), interrumpe con Control-C y revisa los comandos. Evita usar el mismo patrón de entrada que el nombre del archivo de salida en el mismo directorio.

Este recorrido te deja listo para imprimir desde consola con soltura: conoces Out-Printer y PRINT, sabes preparar y filtrar archivos, medir contenido, buscar cadenas y evitar trampas como los bucles de redirección. Con estas piezas puedes montar flujos robustos, repetibles y rápidos que manden exactamente lo que quieres, a la impresora que quieres, sin depender de la interfaz gráfica.

impresión powershell cmd
Artículo relacionado:
Cómo imprimir desde CMD o PowerShell de forma sencilla

Deja un comentario