print from batch file

A

Andrea

I need to develop a batch script able to print all files in a directory(jpg,
pdf, doc or xls); is it possible?

Thanks for help, ciao.
Andrea
 
P

Paul Hadfield

you can redirect output from any command in a batch file to stdio - an lpt
printer port for example:

dir C:\*.jpg > lpt1:

but i think this will only work if the printer is installed locally - not
sure how you could get this to go on a network printer.
 
A

Andrea

No, you are wrong!
I need to print each single file, your command simple prints the files
list...

(it run with network printer too if you locally connect your network print
using:
NET USE lpt1 \\remotePC\remotePrinter)
 
T

Tim_S

Try the Print command from the command window
at the command prompt type print /? and see what your options are
 
T

Tim_S

You can use the print command as shown below or for an easier way you can use windows explorer to drag the files to a printer object. Just highlight the files you want printed and drag it to your printer icon.

From windows help file
Print
Sends a text file to a printer.

Syntax
print [/d:printer] [Drive:][Path] FileName [ ...]

Parameters
/d:printer
Specifies the printer on which you want to print the job. You can specify a local printer by specifying the port on your computer to which the printer is connected. Valid values for parallel ports are LPT1, LPT2, and LPT3. Valid values for serial ports are COM1, COM2, COM3, and COM4. You can also specify a network printer by its queue name (\\ServerName\ShareName). If you do not specify a printer, the print job is sent to LPT1.
Drive:
Specifies the logical or physical drive on which the file you want to print is located. This parameter is not required if the file you want to print is located on the current drive.
Path
Specifies where, on the drive, the file you want to print is located. This parameter is not required if the file you want to print is located in the current directory.
FileName [...]
Required. Specifies, by name, the file you want to print. You can include multiple files in one command.
/?
Displays help at the command prompt.
Remarks
a.. A file can print in the background if you send it to a printer connected to a serial or parallel port on the local computer.
b.. Many programs have their own print commands. You should use the print command for a program to print files that you create with that program.
c.. You can perform many configuration tasks from the command line by using the mode command. For more information about configuring a printer connected to a parallel port, configuring a printer connected to a serial port, displaying the status of a printer, or preparing a printer for code page switching, see mode in Related Topics.
Examples
To send the file Report.txt in the current directory to a printer connected to LPT2 on the local computer, type:

print /d:LPT2 report.txt

To send the file Report.txt in the c:\Accounting directory to the Printer1 print queue on the \\CopyRoom server, type:

print /d:\\copyroom\printer1 c:\accounting\report.txt
 
A

Andrea

1) PRINT runs only with text files (in the first thread message I wrote I
need to print doc, pdf, xls, ...!)
2) I know I can drag and drop a file on a printer device but I need a batch
doing this!
"Tim_S @cox.net>" <<NoSpam> ha scritto nel messaggio You can use the print command as shown below or for an easier way you can
use windows explorer to drag the files to a printer object. Just highlight
the files you want printed and drag it to your printer icon.
From windows help file
Print
Sends a text file to a printer.
Syntax
print [/d:printer] [Drive:][Path] FileName [ ...]
Parameters
/d:printer
Specifies the printer on which you want to print the job. You can specify
a local printer by specifying the port on your computer to which the printer
is connected. Valid values for parallel ports are LPT1, LPT2, and LPT3.
Valid values for serial ports are COM1, COM2, COM3, and COM4. You can also
specify a network printer by its queue name (\\ServerName\ShareName). If you
do not specify a printer, the print job is sent to LPT1.
Drive:
Specifies the logical or physical drive on which the file you want to
print is located. This parameter is not required if the file you want to
print is located on the current drive.
Path
Specifies where, on the drive, the file you want to print is located. This
parameter is not required if the file you want to print is located in the
current directory.
FileName [...]
Required. Specifies, by name, the file you want to print. You can include multiple files in one command.
/?
Displays help at the command prompt.
Remarks
A file can print in the background if you send it to a printer connected
to a serial or parallel port on the local computer.
Many programs have their own print commands. You should use the print
command for a program to print files that you create with that program.
You can perform many configuration tasks from the command line by using
the mode command. For more information about configuring a printer connected
to a parallel port, configuring a printer connected to a serial port,
displaying the status of a printer, or preparing a printer for code page
switching, see mode in Related Topics.
Examples
To send the file Report.txt in the current directory to a printer
connected to LPT2 on the local computer, type:
print /d:LPT2 report.txt
To send the file Report.txt in the c:\Accounting directory to the Printer1
print queue on the \\CopyRoom server, type:
 
T

Tim_S

Sorry, these files must be opened in their application to print as the
application they were created in has to interpret the hidden coding
(formatting) in each file. If you try to print these from DOS (cmd line) you
send that coding direct to the printer and the document comes out garbled.
You bypassed the interpreter of the application.

By dragging them to the printer object windows in reality use the file
extension association and open each application, prints, then closes the
application. This is really the easiest method.

You could write a batch routine but you would have to use the viewers for
each .doc, .xls, ppt to open and print. For instance WordView.exe has a
startup print switch "C:\Program Files\WordView\Wordview.exe" /p
"c:\filename.doc" that would print. (install from office valuepack or
online) You would then have to find a way to set and use variables to
substitute the file name for each .doc in your directory. IF you
standardized your file names you could do something like this...

"C:\Program Files\WordView\Wordview.exe" /p "c:\filename1.doc"
"C:\Program Files\WordView\Wordview.exe" /p "c:\filename2.doc"
"C:\Program Files\WordView\Wordview.exe" /p "c:\filename3.doc"

That way you can print them in one go with a batch file but if your file
name constantly changes then you see it becomes more difficult to program.
I do not think that MS supports the use of wildcards in the file name but i
have not tried it.. as an example.
"C:\Program Files\WordView\Wordview.exe" /p "c:\*.doc"
They may support more than one file name on a line like this:
"C:\Program Files\WordView\Wordview.exe" /p
"c:\filename1.doc","c:\filename2.doc"

There is a Wordview.exe, XLView.exe and PPTView.exe. I think they all
support command line switch to print (/p). WinWord.exe does not support
the command line switch of /p that wordview does. I am not sure about the
others.

PDF is another application entirely. Not supported by MS. Acrobat Reader
may support a command line switch for printing but you will have to
investigate.


Andrea said:
1) PRINT runs only with text files (in the first thread message I wrote I
need to print doc, pdf, xls, ...!)
2) I know I can drag and drop a file on a printer device but I need a batch
doing this!
"Tim_S @cox.net>" <<NoSpam> ha scritto nel messaggio You can use the print command as shown below or for an easier way you
can
use windows explorer to drag the files to a printer object. Just highlight
the files you want printed and drag it to your printer icon.
From windows help file
Print
Sends a text file to a printer.
Syntax
print [/d:printer] [Drive:][Path] FileName [ ...]
Parameters
/d:printer
Specifies the printer on which you want to print the job. You can
specify
a local printer by specifying the port on your computer to which the printer
is connected. Valid values for parallel ports are LPT1, LPT2, and LPT3.
Valid values for serial ports are COM1, COM2, COM3, and COM4. You can also
specify a network printer by its queue name (\\ServerName\ShareName). If you
do not specify a printer, the print job is sent to LPT1.
Drive:
Specifies the logical or physical drive on which the file you want to
print is located. This parameter is not required if the file you want to
print is located on the current drive.
Path
Specifies where, on the drive, the file you want to print is located.
This
parameter is not required if the file you want to print is located in the
current directory.
FileName [...]
Required. Specifies, by name, the file you want to print. You can
include
multiple files in one command.
/?
Displays help at the command prompt.
Remarks
A file can print in the background if you send it to a printer connected
to a serial or parallel port on the local computer.
Many programs have their own print commands. You should use the print
command for a program to print files that you create with that program.
You can perform many configuration tasks from the command line by using
the mode command. For more information about configuring a printer connected
to a parallel port, configuring a printer connected to a serial port,
displaying the status of a printer, or preparing a printer for code page
switching, see mode in Related Topics.
Examples
To send the file Report.txt in the current directory to a printer
connected to LPT2 on the local computer, type:
print /d:LPT2 report.txt
To send the file Report.txt in the c:\Accounting directory to the
Printer1
print queue on the \\CopyRoom server, type:
print /d:\\copyroom\printer1 c:\accounting\report.txt
an
locally -
not
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top