Batch file stops running after the first command

FileBatch File

File Problem Overview


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.

File Solutions


Solution 1 - File

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

Solution 2 - File

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.

Solution 3 - File

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.

Solution 4 - File

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionrajashekarView Question on Stackoverflow
Solution 1 - FileBenView Answer on Stackoverflow
Solution 2 - FileBJoeView Answer on Stackoverflow
Solution 3 - FiletestfailedView Answer on Stackoverflow
Solution 4 - FileAdrian K.View Answer on Stackoverflow