Windows – Generic script to print files of various types in Windows

automationdocumentsprintingscriptingwindows

Is there a command or script in Windows to print a file (various file types such as .doc .xls .txt .pdf) to the default printer?

As far as I know one usually has to execute the relevant application (Word, Excel, Notepad, Acrobat Reader) and ask it to print the file, but I could use a generic way of achieving this right now…

Best Answer

I found this out through this article after being frustrated by Out-Printer.

The synopsis is that using Start-Process should do what you're looking for, if I understood the question:

Start-Process -FilePath "c:\somefile.pdf" -Verb Print

That will open the file with whatever the default program is and print to the default printer (note: can also specify a different printer). This leaves the program running, but...

Start-Process -FilePath "c:\somefile.pdf" -Verb Print -PassThru | %{sleep 10;$_} | kill

...will open, print, sleep for a few moments so the program actually has time to print, then kill it.