Solved

use variable file name in directory and process that file in batch command

Posted on 2013-01-25
4
462 Views
Last Modified: 2013-01-25
I want to look at a directory and process (print) the random TIFF files that appear. The problem is that names are not uniform, they could be just about anything in a tiff extension.

So how do I parse the contents of a directory into a variable and process that variable? There may be more than one TIFF file waiting to be processed, I can loop it until there is nothing else to process.

I would be using the
     rundll32.exe C:\WINDOWS\System32\shimgvw.dll,ImageView_PrintTo /pt "c:\faxes\faxmessage.tiff" "\\corporate\printername" "" ""
comamnd to print the tiff files.

Thanks,
Chuck
0
Comment
Question by:fcbc
  • 3
4 Comments
 
LVL 43

Expert Comment

by:Steve Knight
ID: 38819154
The for command is what you want.  You can either iterate down files using plain for

@echo off
cd /d C:\faxes
for %%a in (*.tif?) do (
  rundll32.exe C:\WINDOWS\System32\shimgvw.dll,ImageView_PrintTo /pt "%%~fa" "\\corporate\printername"
  echo Do something else with the file "%%~a", full name is "%%~fa"
)

or read a directory listing such as

@echo off
for /f %%a in ('dir /b /a-d *.tif?') do (
   echo Filename is %%~a
)

I presume you might want to do a move command after the print too?

The %%a is abritary and case sensitive, use %%T or %%t or whatever if you prefer.
the ~ means remove any " " around the filename, in case it has spaces etc. it is better to remove then add yourself.
You can add qualifiers to the %%~a to get (f = full filename, n=name, x=extension etc.)

for /? explains more.

Steve
0
 
LVL 43

Accepted Solution

by:
Steve Knight earned 500 total points
ID: 38819160
I used *.tif? btw in case you have .tif or .tiff files.

Steve
0
 

Author Comment

by:fcbc
ID: 38819604
wow - WORKS FANTASTIC.

If anyone else tries this, just have a minor correction to above:
rundll32.exe C:\WINDOWS\System32\shimgvw.dll,ImageView_PrintTo /pt "%%~fa" "" ""

you will need those extra 2 sets of quotes at the end of the line.

Thank you for your quick response!
0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 38819629
no problem for is very powerful command and used a lot around here... for /? set /? has lots of useful stuff, or ask here if needed.

stevev
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

VALIDATING DATES One method of validating dates is to jam the date into the DATE command and see if it accepts it by examining the system's errorlevel value. A non-zero result indicates failure. A typical example might look something like the fol…
Introduction: Recently, I got a requirement to zip all files individually with batch file script in Windows OS. I don't know much about scripting, but I searched Google and found a lot of examples and websites to complete my task. Finally, I was ab…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

713 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question