Batch file

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 62.159.244.133 (talk) at 13:55, 31 July 2008. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Batch file
Filename extension
.bat .cmd .btm
Internet media typeapplication/x-bat
Type of formatScripting
Container forShell scripts

In DOS, OS/2, and Microsoft Windows, a batch file is a text file containing a series of commands intended to be executed by the command interpreter. When a batch file is run, the shell program (usually COMMAND.COM or cmd.exe) reads the file and executes its commands, normally line-by-line. Batch files are useful for running a sequence of executables automatically and are often used by system administrators to automate tedious processes.

Although a batch file is analogous to a shell script in Unix-like operating systems, the limited syntax and commands available means it is less suited for general-purpose programming. These limitations lead, in the DOS era, to the widespread use of "enhancement" commands such as those in the Norton Utilities and in 1989 the replacement shell 4DOS.

DOS batch files have the filename extension .bat. Batch files for other environments may have different extensions, e.g. .cmd in Windows NT and OS/2, or .btm in 4DOS and related shells. There is no difference between the .bat and .cmd extensions when the file is directly executed. However, when a shortcut is used to launch them, .bat files run commands using the 16-bit COMMAND.COM command processor whereas if the extension is .cmd, the batch commands are run using the 32-bit Windows NT cmd.exe with all command extensions enabled. Also, the Windows 9x family only recognizes the .bat extension.

History

Microsoft DOS and Windows batch programming has evolved along with the product releases of these operating systems. The command interpreters that come with these operating systems provide two distinct modes of work: interactive mode (in which the user types commands at a command prompt which are then executed immediately) and batch mode (which executes a predefined sequence of commands). The original concepts for both modes draw ideas from Unix shells, as well as other text-based command line interfaces from the early 1980s such as CP/M which in turn took much of their inspiration from TOPS-10 and TOPS-20 from Digital Equipment Corporation.

The MS-DOS operating system's batch program interpreter is 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. In MS-DOS, the most commonly used batch file was AUTOEXEC.BAT, a special batch file that (if it is present) is automatically executed during the booting process.

The newest versions of Windows, Windows 2000 and Windows XP, and Windows Vista are not based on MS-DOS, but on Windows NT. NT-based systems include the cmd.exe command line interpreter, which is generally compatible with COMMAND.COM, although a few MS-DOS features are not available. However, cmd.exe provides many additional features and commands not included with MS-DOS or the MS-DOS-based versions of Windows. COMMAND.COM is still present under NT-based operating systems for better backward compatibility.

The limitations of the original batch file language led to various non-Microsoft interpreters to provide enhanced syntax; the most well-known of those are 4DOS and 4NT.

Although the IBM OS/2 operating system did support DOS-style batch files, it contained a version of REXX — a more advanced scripting language.

For complex tasks using Microsoft Windows version 98 and up, you may use Windows Script Host, which allows the running of scripts written in VBScript, JScript and related scripting languages. As of 2006, Microsoft created another scripting tool called Windows PowerShell, which can be used with Windows XP and above.

Example

An example of a simple batch file:

REM ECHO OFF prevents the printing of each command to standard output.
@ECHO OFF
REM ECHO. prints a blank line.
ECHO.
ECHO Hello World, press any key to start APROGRAM.EXE!
PAUSE > NUL
REM The first argument to the batch file can be referenced with "%1"
APROGRAM.EXE %1
IF ERRORLEVEL 1 GOTO error
ECHO.
ECHO APROGRAM has finished whatever it was doing.
GOTO end
:error
ECHO.
ECHO Something went wrong with AProgram.
:end


See also

External links