Rob van der Woude's Scripting Pages

The MEM command

Since MS-DOS 6.* the MEM command features the /M and /P parameters.
As I will show, we can use the /M parameter to let batch files check whether TSRs or device drivers are loaded or not.

But first, the syntax as given for PC-DOS 7:

Displays the amount of used and free memory in your system.

MEM [ /CLASSIFY | /DEBUG | /FREE | /MODULE modulename ] [/PAGE]
/CLASSIFY or /C Classifies programs by memory usage. Lists the size of programs, provides a summary of memory in use, and lists the largest memory block available.
/DEBUG or /D Displays status of all modules in memory, internal drivers, and other information.
/FREE or /F Displays information about the amount of free memory left in both conventional and upper memory.
/MODULE or /M Displays a detailed listing of a module's memory use.
This option must be followed by the name of a module, optionally separated from /M by a colon.
/PAGE or /P Pauses after each full screen of information.

Use the /M parameter, combined with the FIND command, to check if a TSR or device driver is loaded:

MEM /M ANSI | FIND "following" > NUL
IF NOT ERRORLEVEL 1 ECHO ANSI is loaded

This batch file uses one line of MEM /C's output:
ANSI is using the following memory:
If ANSI is not loaded in memory, this line will not be displayed.
Consequently, FIND will produce an errorlevel of 1.

In the same way, you might use:

MEM /C | FIND "ANSI" > NUL
IF NOT ERRORLEVEL 1 ECHO ANSI is loaded

This method is less DOS version dependent, as far as the usage of MEM /C is concerned.
You will have to check, however, if FIND will produce an errorlevel dependent on its search result, in your particular DOS version.


page last modified: 2014-10-02; loaded in 0.0016 seconds