Edit Article

  • 171,938 views
  • 22 Editors

  • Edited

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.

Ad

EditSteps

  1. Use the Microsoft Batch File Language Step 1.jpg
    1
    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/lower case, 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.
    Ad
    Ad
EditWrite the Batch File
  1. 1
    This section does some hand-holding. If you want the finished script, jump to the next section.
    Ad

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. To use this, type:

@echo off

Hit enter. Remember to press enter after each command. Let's welcome the user to our program. Type:

echo Welcome to the Backup Script!

Did you hit enter again? Good. Now let's have a blank line (for neat spacing). Type:

echo.

And enter again, of course. Now let's do the real business. Type:

choice /C:FNQ /N Select [F]ull Backup or [N]ew files only. Press [Q] or [CTRL-Z] to exit.

That gives the user a choice. Either they press F, or N, or they press Q or CRTL-Z which cancels the whole script. Now lets create commands for each choice. Type:

IF errorlevel 3 goto end
IF errorlevel 2 goto small_backup
IF errorlevel 1 goto full_backup

Now we're cooking! 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.

Use the Microsoft Batch File Language Step 2.jpg
  1. 1
    Create those sections referred to above. Type:
    Ad
 :small_backup
echo.
echo.
echo You chose to backup NEW files. Hit any key to start or ctrl-z to cancel.
pause >nul
xcopy c:\mydirectory d:\mybackup /s/m/e
goto end
 :full_backup
echo.
echo.
echo You chose to backup ALL files. Hit any key to start or ctrl-z to cancel.
pause >nul
xcopy c:\mydirectory d:\mybackup /s/e
goto end
 :end
exit

Suggestion: 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="">.

Use the Microsoft Batch File Language Step 3.jpg
  1. Use the Microsoft Batch File Language Step 4.jpg
    1
    Well it's ready! In Notepad, save the file as <mybackup.bat>, and double click it.
    Ad
EditThe Full Code
  1. 1
    Practice your copy & pasting skills on the following text:
    Ad

@echo off echo Welcome to the Backup Script! echo. choice /C:FN /N Select [F]ull Backup or [N]ew files Backup, or ctrl-z to exit. IF errorlevel 3 goto end IF errorlevel 2 goto small_backup IF errorlevel 1 goto full_backup :small_backup echo. echo. echo You chose to backup NEW files. Hit any key to start or ctrl-z to exit. pause >nul xcopy c:\mydirectory d:\mybackup /s/m/e goto end :full_backup echo. echo. echo You chose to backup ALL files. Hit any key to start or ctrl-z to exit. pause >nul xcopy c:\mydirectory d:\mybackup /s/e goto end :end


exit

Use the Microsoft Batch File Language Step 5.jpg

We could really use your help!

Can you tell us about
Adobe Photoshop?
Yes I can
Adobe Photoshop
how to fade in Photoshop
Can you tell us about
case studies?
Yes I can
case studies
how to do a case study
Can you tell us about
skiing?
Yes I can
skiing
how to tune a ski
Can you tell us about
computers?
Yes I can
computers
how to dock a laptop
Thanks for helping! Please tell us everything you know about
...
Tell us everything you know here. Remember, more detail is better.
Tips
Provide Details.
Please be as detailed as possible in your explanation. Don't worry about formatting! We'll take care of it. For example:
Don't say: Eat more fats.
Do say: Add fats with some nutritional value to the foods you already eat. Try olive oil, butter, avocado, and mayonnaise.

EditVideo



EditSyntax Quick Guide

  • ECHO → Prints to screen.
    • examples:
      • @echo off (prevents each command being listed, only output is displayed)
      • echo Hello. (prints the word 'Hello.' Overrides @echo off.)
      • echo. (prints a blank line)
  • CLS → Clears the screen, nice and neat.
  • MKDIR → Creates a directory.
    • example:
      • mkdir d:\backup (creates a directory on D called backup).
  • XCOPY → Copies files and directories.
    • examples:
      • xcopy c:\file.txt d:\file.txt (copies a named file from C drive to D).
      • xcopy c:\mydirectory d:\mydirectory /i (the '/i' switch insists that references without a file extension are a directory).
      • xcopy c:\my documents\*.* d:\backup\my documents\ /s /i (the '/s' switch copies all subdirectories).
  • CHOICE → Captures a keyboard character (used for making menus).
    • example:
      • choice /C:FN /N Select [F]ull Backup or [N]ew files only. (Lets the user choose between options).
  • PAUSE → Pauses the batch file, resumes on any keypress (except ctrl-z, which cancels).
    • example:
      • echo You chose to backup NEW files. Hit a key to continue or ctrl-z to cancel.
        pause >nul
  • REM → Comments out a line, so it is not executed.
    • example:
      • REM format c: /u/q

EditTips

  • 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

EditWarnings

  • 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.

EditThings 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.

EditSources and Citations

Article Info

Categories: Operating Systems

Recent edits by: Illneedasaviour, Peter Mortensen, General Rommel

In other languages:

Español: Cómo usar el lenguaje de los archivos de procesamiento por lotes de Microsoft, Русский: использовать язык пакетных файлов Microsoft

Thanks to all authors for creating a page that has been read 171,938 times.

Did this article help you?
Yes No

Become
an Author!

Write an Article