Use the Microsoft Batch File Language
Batch files are DOS command line commands batched together. In Linux they are known as shell scripts, and follow a completely different syntax. Early Windows users had to use a batch file (autoexec.bat) to allocate a drive letter to their CD-ROM's, in order to install Windows from CD. Batch files are not so crucial nowadays, although still supported by newer versions of Windows.
Under Windows XP/2000+, batch files (*.bat) run in a special window (aka Command Prompt) created by c:\window\system32\cmd.exe (this could be called command.com in some instances). Commands can be typed in individually, or listed sequentially in a batch file, requiring use of batch file language. This How-To will tell you how to create and run a Microsoft batch file, giving a simple backup as an example.
Contents
Steps
- Open your text editor. Expect to use keys A-Z/0-9/, the symbols (!$| etc), and Enter. Most commands do not check entry for upper/lowercase, so for the moment don't worry about CAPS (or cApS). Each command (and its parameters) goes on one line. Open a command line window (cmd.exe) to test the commands you want to run. Arrange your windows so you can see them both.
Write the Batch File
- Start writing the file. To start writing the file, most people start with
@echo off
as it stops each command being printed as it is processed. It reduces clutter on the user's screen.(This section does some hand-holding. If you want the finished script, jump to the next section.) Template:CodeBox - Hit enter. Remember to press enter after each command.
- Welcome the user to the program. Type: Template:CodeBox
- Hit enter again? Good.
- Leave a blank line for neat spacing then continue typing yet another line. Template:CodeBox
- Press Enter one more time.
- Program what options you want the person who runs your program to see. This code below gives the user a choice. Either they press F, or N, or they press Q or CTRL-Z which cancels the whole script. Template:CodeBox
- Create commands for each choice. If the user presses Q the program returns a "3", and goes to section "end". If they press N the program returns a "2", and goes to section "small_backup". If they press F, the program returns a "1", and goes to "full_backup". "Errorlevel" is not a error message as such, just the only way to set output from the CHOICE command. Template:CodeBox
- Create those sections referred to above. Type:
Template:CodeBox
- Create the directories referred to above, and copy a few small test files into the source directory ready for testing. Later you can change those directory names to suit your real <my documents="">.
- Save the file in Notepad as "mybackup.bat".
- Double-click the file to run it.
The Full Code
- Practice your copy & pasting skills on the following text. Template:CodeBox
Tips
- Closing the Window: If you want the program to close when finished, leave the script as is. If you would like to leave the window open for further commands, change the command <exit> in the final section to <cmd>, which leaves the window open.
- Current Directory: If the program references files in its own directory, you don't need to put in the drive letter. So with the batch file in C:\ you can target files in c:\temp\ just by typing: : Xcopy temp\*.* d:\temp /s/m
Warnings
- While the commands shown here are pretty harmless, use of certain system commands in batch files are potentially dangerous if misused.
- The CHOICE command is not included in Windows XP Home nor Professional and will cause the batch file to close abruptly without prior notice.
Things You'll Need
- A text editor such as Notepad, or a programmer's editor such as HTML-Kit. Programs that embed further information in files (like Word) are not suitable.
- Access to a Command Prompt. Click <start><run>, and type "cmd". Or access the feature under <accessories> in the Start Menu.
- Some files that you can do a test backup on. Try with a small directory with few files, until you get going.
Related Articles
Sources and Citations
- List of commands: SS64.COM
- Microsoft Command Line Reference Microsoft Help Pages
- Advanced Usage: Batch Function Library</accessories></run></start></cmd></exit></my>