rajashekar
rajashekar

Reputation: 979

Batch file stops running after the first command

I am using the tool 'HTML Match' to compare two HTML files. As I have to compare many files, I create a batch file like the followion. For example, I give only five sets of files.

cd "C:\Program Files\HTML Match"
HTMLMATCH.EXE "D:\Raj\compare1\a1.html" "D:\Raj\compare2\a1.html" "D:\Raj\compare_res\a1.html"
HTMLMATCH.EXE "D:\Raj\compare1\a2.html" "D:\Raj\compare2\a2.html" "D:\Raj\compare_res\a2.html"
HTMLMATCH.EXE "D:\Raj\compare1\a3.html" "D:\Raj\compare2\a3.html" "D:\Raj\compare_res\a3.html"
HTMLMATCH.EXE "D:\Raj\compare1\a4.html" "D:\Raj\compare2\a4.html" "D:\Raj\compare_res\a4.html"
HTMLMATCH.EXE "D:\Raj\compare1\a5.html" "D:\Raj\compare2\a5.html" "D:\Raj\compare_res\a5.html"

When I execute this batch file in a cmd prompt, only the first line, that is, only 'a1.html', gets compared and produces a result. Then execution stops.

Upvotes: 96

Views: 72026

Answers (4)

Ben
Ben

Reputation: 52923

Add call in front of the commands you're running.

You can also change this to a for loop, so:

FOR /L %%i in (1,1,5) DO CALL HTMLMATCH.EXE D:\Raj\compare%%i%%\a%%i%%.html D:\Raj\compare%%i%%\a%%i%%.html D:\Raj\compare_res\a%%i%%.html

Upvotes: 154

BJoe
BJoe

Reputation: 969

The answer to your problem is to write CALL HTMLMATCH.EXE (and the rest of the parameters). Just use CALL in front of every executable command in the batch file.

Upvotes: 86

testfailed
testfailed

Reputation: 51

I was looking for something really similar and tried, I think, all the replies left here but I finally found the solution to my problem!!

In my script I want to check if one process is running, if not, start it (a .exe) and then check if another process is running, if not, start it too (but leave all the programs opened) and the problem is that the first .exe was started but then not moving to the second one because it was waiting until the process ended. It´s finally working for me with start and the magic comes with...

/separate

it works for me as:

start "program1" /separate program1.exe
other commands

Before it stopped after starting program1 because it was waiting until it was closed, I think, but this was not going to happen because I wanted to leave it opened. Now with the start /separate it continues with the other commands.

I found it in another forum but the thing is that it´s the manual, /separate is used to start in another memory space.

Upvotes: 4

Darj
Darj

Reputation: 1403

You don't have to insert quotation marks where there isn't any space mark between.

Try that:

HTMLMATCH.EXE D:\Raj\compare1\a1.html D:\Raj\compare2\a1.html D:\Raj\compare_res\a1.html

Maybe it will solve your issue.

Upvotes: -1

Related Questions