Batch file

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire
Batch file
Filename extension .bat .cmd .btm
Type of format Scripting
Container for Shell 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.

DOS batch files have the filename extension .bat (or .BAT because file names are case insensitive in DOS, Windows and OS/2). 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.

Contents

History

The command interpreters 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.

Microsoft DOS and Windows batch programming has evolved along with the product releases of these operating systems. 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 led to various non-Microsoft interpreters to provide enhanced syntax by providing "enhancement" commands such as those in the Norton Utilities (like the BE or Batch Enhancer) and in 1989 the replacement shell 4DOS and later 4NT.

DOS

The batch program interpreter for MS-DOS and compatible DOSes 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 most commonly used batch file was AUTOEXEC.BAT. If present, it was automatically executed during the booting process.

The evolution of this branch of batch programming proceeded through the releases of MS-DOS, and continued with the early versions of Microsoft Windows through to Windows 95, Windows 98, and finally Windows Me, which remained based on MS-DOS.

Modern Windows

Modern versions of Microsoft Windows such as Windows XP and Windows Vista are not based on MS-DOS, but on Windows NT. NT-based systems's native command line interpreter is CMD.EXE which, while generally compatible with MS-DOS, provides many additional features and commands. (The older COMMAND.COM of MS-DOS is still available on NT-based systems where necessary for better backward compatibility).

For complex tasks in Windows 98 and up the Windows Script Host may be used. It allows the running of scripts written in VBScript, JScript and related scripting languages, but is more akin to traditional programming languages. It has no command line interface.

In 2006, Microsoft created another scripting tool, Windows PowerShell, which can be used with Windows XP and above. It is also designed for interactive use from command line interface.

OS/2

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

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
PAUSE


See also

External links

Wikibooks
Wikibooks has a book on the topic of

Article keywords: dos batch file,

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net