Creating a Batch File for Windows 7

For Example: I’m running a small program in: Pascal called libusers

When the program is run it needs two input files from the user and does some comparison and outputs the result in a text file

So the at Dos prompt I will do the following:
C:\> pascal libusers  -i <file-1> -i <File-2> -o <finalusers.txt>

At present I have to manually type the name of the files everytime I run the program. I want to know if there is a way that I can create a batch file which can automatically pick up the files from a folder and pass them as input to the above program.

The files that I input manually sit in a folder with other files and they all have the same name – I want the batch file to pick the most recent files from that folder.  

Is this possible !!!
adam_kan2000Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Qlemo"Batchelor", Developer and EE Topic AdvisorCommented:
"they all have the same name" - that is impossible, as file names are unique. I assume you mean they follow the same pattern in their name.

To automate, you'll need to have strict rules for how to find file1 and file2, and/or to tell how many files (always 2?). Best to list an example folder structure.
0
Bill PrewCommented:
This should do the job, just adjust the folder path in the SET near the top.

@echo off
setlocal

REM Define folder to work in, and output file name
set BaseDir=B:\EE\EE28378812\Files
set File1=
set File2=
set File3=finalusers.txt

REM Make the desired folder the current one
pushd %BaseDir%

REM Find the two most recent files
for /F "tokens=*" %%A in ('dir /b /a-d /o-d "%BaseDir%\*.*"') do (
  if defined File2 goto :GotFiles
  if defined File1 (
    set File2=%%A
  ) else (
    set File1=%%A
  )
)

:GotFiles
REM Run the PASCAL program passing in the file names
ECHO pascal libusers  -i %File1% -i %File2% -o %File3%

REM Return to original folder
popd

Open in new window

~bp
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows Batch

From novice to tech pro — start learning today.