The 32-bit Command Interpreter

version 1.1.2
Jonathan de Boyne Pollard

The 32-bit CMD for OS/2 is a native OS/2 command interpreter. It is designed to be highly compatible with the 16-bit CMD.EXE supplied with OS/2 by IBM, providing the same range of commands and the ability to execute the same command scripts, whilst on the other hand taking full advantage of 32-bit OS/2 and leaving behind several of the long-standing limitations and quirks IBM's command interpreter has inherited, sometimes for no reason, from MS/PC/DR-DOS (and even from CP/M in some cases).

Some useful accompaniments to the 32-bit CMD are utility suites such as JdeBP's Command Line Utilities, and The Graham Utilities for OS/2.

The CMD API is supplied for the benefit of third party developers who wish to provide alternate user interfaces to the command interpreter, or who wish to write interactive command-line interpreter style tools without duplicating all of the effort of command-line parsing, variable expansion, built in commands, and command script execution.

For full information, see the on-line documentation.


The 32-bit CMD has all of the features that one expects as standard in an OS/2 command interpreter, including:

In addition, the 32-bit CMD provides several extensions to and improvements on the features of IBM's 16-bit CMD, such as:


The 32-bit CMD provides an application programming interface for software developers to make use of. As the REXX interpreter can be linked into OS/2 applications to make them scriptable using the REXX language, so too can the script file interpreter of CMD be linked into OS/2 applications to make them scriptable using the CMD language.

Programs that use the API gain all of the features of the "regular" command interpreter, such as:

In addition, developers are provided with mechanisms to enable, disable, and rename the standard built-in commands, and to add their own built-in commands.


The messages displayed by the command interpreter and the external commands supplied with it are taken from message files rather than hard-coded into the programs themselves, which is of course the standard way that 32-bit OS/2 applications should work.

Some of the messages are taken from OS/2's own system files, and so those messages will automatically be rendered in the correct language on non-English versions of OS/2 without further effort.

Translating the remaining messages into another language is simply a matter of substituting new CMD.MSG and CMDH.MSG files at runtime. Volunteers for translating the messages are welcome to contact the author.

© Copyright 2000,2004,2009 Jonathan de Boyne Pollard. "Moral" rights asserted.
Permission is hereby granted to copy and to distribute this web page in its original, unmodified form as long as its last modification datestamp information is preserved.