BAT2EXEC 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. USING BAT2EXEC The full syntax for BAT2EXEC could hardly be simpler. Just enter: BAT2EXEC FILE.BAT 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 the error. 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 it terminates. 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 answer.