In DOS and Windows, a batch file is a text file with a series of commands (see command line interface). When the batch file is run, the shell program (command.com or cmd.exe) reads the file and executes its commands. Either in order or it can have option flow control. A batch file is similar to a shell script under Unix-like operating systems.
DOS batch files have the filename extension .BAT or .CMD. AUTOEXEC.BAT is a special batch file that is executed during the booting process.
The default behaviour of the shell is to print each command to standard output before executing it. This is most often not desired, so the command ECHO OFF is given at the beginning of a batch file to prevent that from happening. command.com also has the operator @, which may be prefixed to a single command to keep it from printing. Thus, almost all batch files start with the line @ECHO OFF.
History
Microsoft operating system batch programming has evolved along with the product releases of these operating systems. Command interpreters are provided with these operating systems that provide two distinct modes of work. First is the interactive mode, in which the user types commands which are then executed immediately. The second is the batch mode, which executes a predefined sequence of commands, stored as a text file with the extension .bat. The original concepts for both functionalities draw ideas from Unix shells, as well as other text based command line interfaces in use in the early 1980s, e.g. CP/M.
Originally, the MS-DOS operating system provided a batch program interpreter for the shell command.com. Batch programs for MS-DOS are composed of a relatively simple set of commands interpreted directly by command.com (internal commands) and utilities that exist as separate executables (external commands). The evolution of this branch of batch programming proceeded through the releases of MS-DOS, and into Windows 95, Windows 98 and finally Windows Me.
The newest Microsoft Windows versions, Windows 2000 and XP, are not based on MS-DOS, but on Windows NT, introduced before MS-DOS 6.0. In NT systems, a native MS-DOS environment is absent, but included is an MS-DOS compatible shell, cmd.exe. Some MS-DOS features are not available, but there are many additional features and commands not included with MS-DOS or MS-DOS based versions of Windows.
Various non-Microsoft command interpreters exist that provide enhanced batch program command syntax. An example of these is the 4DOS product.
Several non-Microsoft implementations of batch compilers exist to convert batch programs to directly executable programs. The quality-of-implementation of these compilers varies widely.
The IBM OS/2 operating system contains a text based command facility that is related to the ones supplied with Microsoft operating systems.
See also
External links