giovedì 10 novembre 2016

PowerShell: Mandare in stampa determinati file presenti in una cartella

Per mandare in stampa un determinato file utilizzando PowerShell è possibile utilizzare il comando
Start-Process -FilePath <path_e_nome_file> –Verb Print

Ad es. per stampare il file c:\temp\list.pdf il comando da eseguire è
Start-Process -FilePath c:\temp\list.pdf –Verb Print

Il file verrà aperto, mandato in stampa sulla stampante predefinita e quindi verrà chiuso.

Per stampare tutti i file PDF contenuti nella cartella c:\temp\ 
Dir c:\temp\*.pdf | Foreach-Object { Start-Process -FilePath $_.FullName –Verb Print }
PowerShell, stampare tutti i file PDF presenti in una cartella
FIG 1 - PowerShell, stampare tutti i file PDF presenti in una cartella

In caso di file di solo testo si può scegliere di utilizzare i cmdlet Get-Content e Out-Printer
Get-Content c:\temp\list.txt | Out-Printer

2 commenti:

  1. Buongiorno,
    se volessi mandare tutte le stampe dell'esempio precedente sulla stampante microsoft to print è possibile automatizzare pure l'inserimento del nome file ad es. con un progressivo?
    Grazie

    RispondiElimina
    Risposte
    1. Non è possibile personalizzare i file di output della stampante microsoft to print con tale sistema. Bisognerebbe creare un apposito script PowerShell e utilizzare la classe System.Drawing.Printing.PrintDocument che permette di personalizzare le impostazioni della stampante.

      Elimina

I messaggi sono soggetti a moderazione da parte dell'amministratore prima della loro pubblicazione.