Se lavori in Windows e hai dimestichezza con la console, prima o poi vorrai inviare documenti alla stampante senza aprire alcuna applicazione grafica. Stampa da CMD o PowerShell È veloce, programmabile e perfetto per automatizzare le attività. di giorno in giorno, dall'invio di un SMS alla copia dell'output di un comando direttamente su carta.
In questa guida spiego, con un approccio pratico, i due modi principali: il cmdlet PowerShell Out-Printer e il comando PRINT del Simbolo del sistema. Vedrai anche come preparare i file, filtrare i contenuti, evitare errori tipici e concatenare comandi per controllare ciò che stampi fino all'ultimo dettaglio. Il tutto con sintassi, esempi e sfumature importanti che vorrai conoscere.
Opzioni per la stampa in Windows dalla console
In Windows, hai due opzioni complementari. Da un lato, PowerShell offre il cmdlet Out-Printer per inviare l'output di un comando o di un oggetto alla stampante (quella predefinita o una specifica). È diretto, funziona tramite pipeline ed eredita le impostazioni predefinite della stampante, senza esporre i controlli di formattazione sul cmdlet stesso.
D'altro canto, il Prompt dei comandi (CMD) mantiene il classico comando PRINT per i testi, con la possibilità di scegliere un dispositivo. È un'utilità veterana focalizzata sui file di testo, utile quando non si ha bisogno di tutta la potenza di PowerShell o si lavora con script batch.
Una sfumatura fondamentale: Out-Printer esiste solo su Windows (non macOS o Linux). Se si utilizza PowerShell su altre piattaforme, questo cmdlet non è disponibile., quindi dovrai cercare alternative specifiche per quell'ambiente, come ad esempio Stampa dal terminale in Linux.
In entrambi i casi, se non si specifica una stampante, verrà utilizzata quella predefinita del sistema. Quando è necessario puntare a una stampante di rete, è possibile specificarne il nome UNC. con Out-Printer e, in CMD, il dispositivo corrispondente in PRINT.
Out-Printer in dettaglio: sintassi, parametri e comportamento
Questa è la struttura del cmdlet, così avrai sempre a portata di mano il riferimento. Nota i parametri facoltativi Nome e InputObject e supporta i consueti CommonParameters di PowerShell.
Out-Printer <String>]
Breve descrizione del comportamento: Out-Printer invia l'output alla stampante predefinita o a un'altra stampante, se specificata. Non offre opzioni di formattazione o controlli per i processi di stampa.; vengono utilizzati i valori predefiniti della stampante selezionata.
- Piattaforma: Finestre.
- Formato: I cmdlet con il verbo Out non formattano; vengono renderizzati e inviati in output a una destinazione di presentazione.
- Uscita in canalizzazione: non emette alcun oggetto. Se inoltri il suo output a Get-Member, vedrai che non c'è nulla da esaminare.
Parametri principali: Sono pochi e semplici, il che li rende più rapidi da usare. negli script e nella console interattiva.
- -Name (alias: PrinterName). Tipo: Stringa, Posizione: 0, Facoltativo. Indica la stampante di destinazione.
- -InputOggettoTipo: PSObject. Accetta valori inoltrati tramite pipe, facoltativo. Questo è l'oggetto inviato alla stampante.
- Parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, -WarningVariable.
Ingressi e uscite: È possibile reindirizzare qualsiasi PSObject come inpute il cmdlet non restituisce nulla (OutputType: None). Questo lo rende ideale come endpoint per una pipeline.
Note operative: quando Out-Printer riceve un oggetto non elaborato, PowerShell inserirà automaticamente un cmdlet di formattazione prima di eseguirne il rendering. Ciò garantisce che ciò che arriva alla stampante abbia una rappresentazione testuale., anche se non si specifica manualmente il formato.
Esempi pratici con Out-Printer
La stampa di un file sulla stampante predefinita anche se Out-Printer non ha -Path è molto semplice: basta leggere il file e inviarlo.
Get-Content -Path ./readme.txt | Out-Printer
In questo schema, Get-Content estrae il contenuto e Out-Printer lo invia alla stampante predefinita. Usalo per TXT, i registri o output che sono già testo normale.
La stampa di una stringa su una stampante remota (UNC) consente di testare rapidamente la connettività e lo spooling di stampa. È ideale per verificare che il nome condiviso della stampante sia corretto..
"Hello, World" | Out-Printer -Name "\\Server01\Prt-6B Color"
Se si desidera stampare la guida completa per un cmdlet, è possibile scaricare il contenuto di Get-Help e inviarlo come oggetto. La chiave è usare -InputObject con il valore recuperato in precedenza.
$H = Get-Help -Full Get-CimInstance
Out-Printer -InputObject $H
Ricorda che Out-Printer non controlla le opzioni di stampa (pagine, vassoio, fronte-retro, ecc.). Verranno sempre applicati i valori predefiniti della stampante., quindi qualsiasi messa a punto dovrà essere eseguita sul dispositivo o con strumenti specifici diversi dal cmdlet.
Stampa dal prompt dei comandi con PRINT
Il comando PRINT è nativo di Windows 10/11 e delle moderne edizioni di Windows Server. Il suo scopo è semplice: stampare file di testo da CMD.
PRINT archivo ]
L'opzione /D specifica il dispositivo di stampa. Se non lo si specifica, verrà utilizzata la stampante predefinita.È un'utilità perfetta se il tuo flusso di lavoro è ancora basato su batch e lavori con TXT puro.
Un esempio di base per inviare un file .txt al dispositivo predefinito sarebbe il seguente: Aprire CMD dove si trova il file ed eseguire PRINT nome.txtSe si utilizza una stampante mappata o un nome di dispositivo specifico, aggiungerlo con /D.
Preparare e selezionare cosa stampare con i cmdlet dei file
Prima di stampare, è consigliabile decidere quali file verranno messi in coda, spostarli in una cartella temporanea o filtrarli in base a criteri. PowerShell brilla qui con i cmdlet del file system.
L'elenco dei contenuti con Get-ChildItem (alias: gci, dir, ls) e la visualizzazione dei file nascosti o di sistema sono immediati con -Force. Aggiungi -Recurse se vuoi approfondire le sottocartelle.
Get-ChildItem -Path C:\ -Force
Get-ChildItem -Path C:\ -Force -Recurse
Se stai cercando un filtraggio più sofisticato, combina gci con Where-Object per basare il filtro su proprietà come data e dimensione. Questo modello è ideale per generare elenchi di inventario stampabili..
Get-ChildItem -Path $env:ProgramFiles -Recurse -Include *.exe |
Where-Object { ($_.LastWriteTime -gt '2005-10-01') -and ($_.Length -ge 1mb) -and ($_.Length -le 10mb) }
Copiare o controllare le versioni dei file di lavoro è un gioco da ragazzi con Copy-Item, mentre con Test-Path è possibile verificarne l'esistenza precedente. Utilizzare -Forza per sovrascrivere le destinazioni di sola lettura.
if (Test-Path -Path $PROFILE) {
Copy-Item -Path $PROFILE -Destination $($PROFILE -replace 'ps1$', 'bak') -Force
}
Per preparare le strutture delle cartelle di stampa, creare directory e file vuoti con New-Item. A seconda delle tue esigenze, differenzia tra -ItemType Directory e -ItemType File..
New-Item -Path 'C:\temp\Nueva Carpeta' -ItemType Directory
New-Item -Path 'C:\temp\Nueva Carpeta\listado.txt' -ItemType File
Se è necessario ripulire le cartelle intermedie, Remove-Item elimina file o directory. Quando c'è del contenuto e vuoi evitare le conferme, aggiungi -Recurse.
Remove-Item -Path C:\temp\ColaTemporal -Recurse
È anche possibile mappare una cartella come unità logica temporanea con New-PSDrive per abbreviare i percorsi durante il processo. Con -Persist sono supportati e integrati in Explorer solo i percorsi remoti.
New-PSDrive -Name P -Root $env:ProgramFiles -PSProvider FileSystem
Leggere, scrivere e combinare i testi prima di stamparli
Get-Content legge i file di testo come un array (ogni riga è un elemento). Ciò rende molto comodo visualizzare in anteprima, filtrare o trasformare prima della stampa..
$lineas = Get-Content -Path .\listado.txt
$lineas.Length
Per generare contenuti al volo, Write-Output (ovvero: write, echo) e il reindirizzamento sono i tuoi alleati. Reindirizzare con > per creare/sovrascrivere e con >> per aggiungere.
Write-Output "Encabezado del informe" > informe.txt
Write-Output "Nueva línea" >> informe.txt
Se vuoi clonare il contenuto, puoi usare Get-Content con reindirizzamento invece di Copy-Item. Funziona bene con modelli e caratteri jolly quando si consolidano testi..
Get-Content benjamin.txt > benjamin2.txt
Get-Content *.log > combinado.log
Attenzione a un classico: reindirizzare Get-Content *.txt a un file che termina anch'esso in .txt nella stessa directory può creare un ciclo "infinito" perché il file di destinazione diventa quello di origine. Si annulla con Ctrl-C, ma prevenire è meglio.
Get-Content *.txt > gran.txt # Riesgo: gran.txt coincide con *.txt
La soluzione più pulita è escludere il file di destinazione con il parametro -Exclude. In questo modo si evita che il proprio risultato entri nel set di input..
Get-Content *.txt -Exclude gran.txt > gran.txt
Utilizza i caratteri jolly a tuo vantaggio per selezionare esattamente ciò di cui hai bisogno (ad esempio, ben*.txt). Una selezione ben studiata riduce le sorprese e velocizza il flusso..
Ricerca rapida e conteggio prima dell'invio alla stampante
Per individuare frammenti specifici in più file, Select-String (alias: sls) è come avere grep integrato in PowerShell. Perfetto per verificare che il testo da stampare contenga ciò che ti aspetti..
Select-String "existencia única" *.txt
E se hai bisogno di metriche rapide, puoi passare a Measure-Object (misura) per contare righe, parole e caratteri. Aggiungi -IgnoreWhiteSpace se vuoi escludere gli spazi.
Get-Content benjamin.txt | Measure-Object -Line -Word -Character
Get-Content *.txt | Measure-Object -Line -Word -Character -IgnoreWhiteSpace
Questo controllo preventivo consente di risparmiare carta e tempo, soprattutto in caso di lotti di grandi dimensioni. Misura, controlla e poi stampa con Out-Printer o PRINT con la tranquillità che ciò che esce dalla stampante è esattamente ciò di cui hai bisogno.
Flussi di lavoro tipici per la stampa dalla console
Scenario 1: stampare un TXT generato da un processo. Leggi, controlla alcune righe e invia alla stampante predefinita.
Get-Content .\resultado.txt -TotalCount 10
Get-Content .\resultado.txt | Out-Printer
Scenario 2: inviare un'etichetta o un'intestazione a una stampante condivisa. Ideale per test o stampanti di rete.
"Etiqueta: Pedido 12345" | Out-Printer -Name "\\SrvPrint\HP-Laser"
Scenario 3: consolidare diversi registri della giornata e poi stamparli. Evita il ciclo di output con -Exclude e filtra in base al modello di data, se necessario.
Get-Content .\logs\*.2025-09-*.log -Exclude resumen.log > resumen.log
Get-Content resumen.log | Out-Printer
Scenario 4 (CMD): stampare rapidamente un TXT da un copione lotto. Utile quando PowerShell non fa parte del flusso (vedere aprire file PRN).
PRINT /D:PRN01 C:\reportes\hoy.txt
Suggerimenti correlati per la navigazione e la produttività
Per spostarsi tra le cartelle: Imposta posizione (sl, cd) e completamento tramite tabulazione evitano errori di digitazione. È possibile combinare percorsi relativi come ..\.. per saltare i rami.
Se si passa spesso da una posizione all'altra, Push-Location (pushd) e Pop-Location (popd) sono molto comode: Si salva la posizione corrente nello stack e si torna indietro con un singolo comando..
Preferisci vedere qualcosa in Explorer? Avvia Explorer dalla cartella corrente. In questo modo puoi verificare visivamente cosa stai per stampare dalla console..
Rinominare o spostare file con Move-Item (mv) e copiarli con Copy-Item (cp) è un'operazione rapidissima. Fate attenzione quando usate rm (Remove-Item): elimina gli elementi in modo permanente., non finisce nella spazzatura.
Se si lavora con elenchi (ad esempio, host o indirizzi IP) in un file TXT, Get-Content restituisce un array; è possibile utilizzarlo come base per generare un report e inviarlo a Out-Printer. Il pipelining trasforma questi flussi in passaggi concisi e ripetibili..
Aiuto integrato e parametri utili
Get-Help mostra la sintassi e i parametri di qualsiasi cmdlet. Se aggiungi -Online, verrà aperta una guida dettagliata nel browser.È il modo più rapido per chiarire dubbi specifici.
Get-Help Out-Printer
Get-Help Get-Content -Online
Nel caso di Get-Content, -TotalCount consente di leggere solo le prime X righe e -Tail le ultime X. Sono perfetti per controllare un pezzo prima della stampa. ed evitare sorprese sulla carta.
Get-Content .\informe.txt -TotalCount 10
Get-Content .\informe.txt -Tail 10
Hai già visto che -Exclude è fondamentale per impedire che il file di destinazione diventi quello di origine durante un consolidamento. Tenetelo a mente quando lavorate con i caratteri jolly. e reindirizzamenti.
Limitazioni, avvertenze e buone pratiche
Out-Printer non ha controlli per il formato, i margini o i vassoi; accetta le impostazioni predefinite della stampanteSe hai bisogno di un maggiore controllo, cerca strumenti specifici del produttore o genera un PDF con il formato desiderato e poi stamparlo (ad esempio, Stampa come PDF in Windows 11).
Out-Printer non invia dati alla pipeline, per impostazione predefinita. Non provare a concatenare il suo risultato a Get-Member: Non ci sarà alcun oggetto da esaminare. Utilizzare questo come passaggio finale della pipeline.
Se si stampano grandi volumi di testo, controllare prima la dimensione e il numero di righe con Measure-Object. Un controllo di 5 secondi può far risparmiare molte pagine e inchiostro.
Quando si usa PRINT in CMD, bisogna ricordare che si concentra sui file di testo. Per i contenuti non testuali, PowerShell e Out-Printer offrono un rendering più flessibile. grazie alla pipeline e alla conversione preventiva degli oggetti in testo.
E se qualcosa "pensa" troppo a lungo (ad esempio, un loop dovuto a un reindirizzamento mal pianificato), interrompetelo con Ctrl-C e rivedete i comandi. Evitare di utilizzare lo stesso modello di input del nome del file di output nella stessa directory.
Questa procedura dettagliata ti consentirà di stampare dalla console con facilità: avrai familiarità con Out-Printer e PRINT, saprai come preparare e filtrare i file, misurare il contenuto, cercare stringhe ed evitare insidie come i loop di reindirizzamento. Con queste parti puoi assemblare flussi robusti, ripetibili e veloci che inviano esattamente ciò che desideri, alla stampante che desideri, senza dipendere dall'interfaccia grafica.
Scrittore appassionato del mondo dei byte e della tecnologia in generale. Adoro condividere le mie conoscenze attraverso la scrittura, ed è quello che farò in questo blog, mostrarti tutte le cose più interessanti su gadget, software, hardware, tendenze tecnologiche e altro ancora. Il mio obiettivo è aiutarti a navigare nel mondo digitale in modo semplice e divertente.