Contents of the BAT2EXEC.DOC file
Doug Boling - Volume 9, Issue 14 - August 1990
Purpose: Compile your batch files for added speed. Large batch
files often run annoyingly slowly. Compiling them with
BAT2EXEC will increase both your productivity and satisfaction.
Daily PC operations are almost unimaginable without the use of batch
files. Everyone has his favorite collection of them, and some users
have constructed complex batch files of thousands of bytes that push
the batch langauge itself to its limits. Programs that expand the
available batch file functions, such as Michael Mefford's BATCHMAN,
encourage users to make even larger batch files.
Unfortunately, however, batch files are also notoriously slow.
It can be almost painful to watch them scroll down the screen a line
at a time. A standard way to improve the speed of interpreted
programs, such as batch files, is to compile them. That's where
BAT2EXEC comes in.
The full syntax for BAT2EXEC could hardly be simpler. Just enter:
where FILE.BAT is the name of your batch file. BAT2EXEC will then
produce an executable .COM file with the name FILE.COM. If BAT2EXEC
can't find the batch file, an error message will be printed. If
BAT2EXEC can't understand a line in the batch file, it will print an
error message indicating the line in the file in which it discovered
BAT2EXEC should not be used on every batch file. AUTOEXEC.BAT, for
example, must remain a genuine batch file in order for COMMAND.COM to
find it. Similarly, batch files that run terminate and stay resident
utilities (TSRs) should not be compiled. The reason for this
limitation lies in the DOS memory management structure: if a TSR is
executed from a program compiled by BAT2EXEC, the memory used by
BAT2EXEC itself will not be made available to the system after
Programs created by BAT2EXEC behave slightly differently from the
batch files from which they were compiled. The .COM file does not
echo each line to the screen as does the batch file, for example.
Running other batch files does not cause the .COM program to end.
Also, pressing Ctrl-Break does not present the message, "Terminate
Batch file (y/n)." If Ctrl-Break is pressed and BREAK has been set
on, the program simply terminates.
The size of the resulting .COM file is somewhat larger than
the batch file. Compiling a batch file containing a single REM
statement results in a .COM file size of 68 bytes, illustrating the
overhead of the setup and terminate routines. Program size increases
quickly as routines are added then slows as the loaded routines are
reused instead of new ones being added.
Certainly, BAT2EXEC is not suitable for use on every batch
file. Two and three line batch files are best left in their easy-to-
alter and simple-to-understand ASCII format. However, for those batch
files that have grown into long complex programs, BAT2EXEC is the