Creating a batch file
MS-DOS
users Microsoft
Windows and other users
MS-DOS users
To create a basic batch file in MS-DOS, follow the below steps
that give you an example of how to create a basic batch file.
- Open an MS-DOS command window or get to MS-DOS. Additional
information about doing this can be found on document
CHDOS.
- At the MS-DOS prompt, type: edit test.bat and press
enter.
- If typed properly, you should now be in a blue screen. Within
the screen, type:
pause dir c:\windows dir
c:\windows\system
- Once the above three lines have been typed in, click File and
choose exit; when prompted to save, click "Yes". Users who do not
have a mouse cursor can accomplish this same task by pressing
ALT+F to access the file menu, then pressing "X" to exit, and
pressing enter to save changes.
- Once you are back at the MS-DOS prompt, type: test and
press enter. This will execute the test.bat file and begin running
the file. Because the first line is pause, you will first be
prompted to press a key. Once you press a key the batch file will
run line-by-line; in this case, listing the files in the windows
and windows\system directories.
If you wish to add more lines to this batch file you would simply
type "edit test.bat" to edit the file again.
Additional information about the MS-DOS edit command can
be found on our edit command page. Some versions of MS-DOS and
bootable diskettes may not have the edit command; if this is the
case, you would either need to obtain the edit.com file to access
this file or use the copy con command.
Microsoft Windows and other users
A Windows user can still use the above MS-DOS steps if they wish
to create a batch file. If, however, you're more comfortable using
Microsoft Windows or your operating system, you can use any text
editor, such as Notepad
or Wordpad,
to create your batch files, as long as the file extension
ends with .bat. In the below example we use the Windows notepad to
create a batch file.
- Click Start
- Click Run
- Type: notepad and press enter.
- Once notepad is open, type the below lines in the file or copy and
paste
the below lines into notepad.
@echo off echo Hello this
is a test batch file pause dir c:\windows
- Click File and click Save; browse to where you want to save
the file. For the file name, type "test.bat", and if your version
of Windows has a "Save as type" option, choose "All files",
otherwise it will save as a text file. Once all of this has been
done click the Save button and exit notepad.
- Now, to run the batch file, simply double-click or run the
file like any other program. Once the batch file has completed
running it will close the window automatically.
Batch commands
Just like all MS-DOS commands, all batch file commands are not case
sensitive. However, in the below listing we have listed all
commands in all caps to help you identify what is a command and what
is not.
| @ |
Does not echo back the text after the at
symbol. This is most commonly used as @ECHO OFF to
prevent any of the commands in the batch file from being
displayed, just the information needed. |
| %1 |
The percent followed by a numeric value,
beginning with one, allows users to add variables within a
batch file. The below line is an example of what can be used
in a batch file.
ECHO Hello %1
When the above one-line batch file is created, add your
name after the batch file. For example, typing myname (being
the name of the bat file) and then your name:
myname bob
would output:
Hello bob
Note: This can be extended to %2, %3, and so
on. |
| LABEL |
By adding a colon in front of a word, such as
LABEL, you create a category, more commonly known as a
label.
This allows you to skip to certain sections of a batch file
such as the end of the batch file. Also see GOTO. |
| CALL |
This is used to run another batch file within a
batch file. When the batch file that is called is completed,
the remainder of the original batch file is completed. Note if
the batch file does not exist it will give an error
message. |
| CHOICE |
See running
different programs for an example of how to use this
command.
- Additional information and the syntax of this command in
each version of Windows and MS-DOS can be found on our CHOICE
command page.
|
| CLS |
Just like the DOS command would clear your
screen.
- Additional information and the syntax of this command in
each version of Windows and MS-DOS can be found on our CLS command
page.
|
| ECHO |
Will echo a message in the batch file. Such as
"ECHO Hello World" will print: Hello World on
the screen when executed. Note if you have not typed @ECHO
OFF at the beginning of the batch file this will also
print "ECHO Hello World" and "Hello World". If you would just
like to create a blank line, type ECHO. adding the
period at the end creates an empty line. |
| EXIT |
Exits out of the DOS window if the batch file
is running from Windows.
- Additional information and the syntax of this command in
each version of Windows and MS-DOS can be found on our EXIT command
page.
|
| GOTO LABEL |
Used to go to a certain label, such as LABEL.
An example of GOTO would be to GOTO END. For an example of
this see running
different programs.
- Additional information and the syntax of this command in
each version of Windows and MS-DOS can be found on our GOTO command
page.
|
| IF |
Used to check for a certain condition if the
condition exists. If that condition exists it will perform
that function. To see an example of this see running
different programs.
- Additional information and the syntax of this command in
each version of Windows and MS-DOS can be found on our IF command
page.
|
| PAUSE |
Prompt the user to press any key to
continue. |
| REM |
Allows you to place remarks
into the batch file without displaying or executing that line
when the batch file is run. |
| SHIFT |
Changes the position of replaceable parameters
in a batch program.
- Additional information and the syntax of this command in
each version of Windows and MS-DOS can be found on our SHIFT command
page.
|
| START |
Used for Windows 95,
Windows
98, and Windows NT
4.0 and above to start a windows application; such as
START C:\WINDOW\CALC would run the Windows Calculator.
Users running Windows 3.x
need to utilize the WIN command. For example, WIN
C:\Windows\CALC.EXE would run Windows and then Calculator
after Windows has finished loading.
|
Batch file examples
Running different
programs How to start Windows
files and programs from a batch file Creating a batch file
delay How
to make a time log
Running different programs
Below is a simple example of how you can implement the choice
options into your batch files. Each line that is in red can be left
out of the batch file. They have been included to help explain some
of what the batch file means. Windows 2000 and
Windows XP users
will need to substitute the choice command with the set command; see
our set command
page for additional help and information with this command.
@ECHO OFF REM - LABEL INDICATING THE
BEGINNING OF THE DOCUMENT. :BEGIN CLS REM - THE BELOW LINE GIVES THE USER 3 CHOICES (DEFINED
AFTER /C:) CHOICE /N /C:123 PICK A NUMBER (1, 2, or
3)%1 REM - THE NEXT THREE LINES ARE DIRECTING
USER DEPENDING UPON INPUT IF ERRORLEVEL ==3 GOTO
THREE IF ERRORLEVEL ==2 GOTO TWO IF ERRORLEVEL ==1 GOTO
ONE GOTO END :THREE ECHO YOU HAVE PRESSED THREE GOTO
END :TWO ECHO YOU HAVE PRESSED TWO GOTO END :ONE ECHO
YOU HAVE PRESSED ONE :END
How to start Windows files and other
programs from a batch file
To run Microsoft Windows programs or files use the START command.
The below example would run Windows Notepad.
START /MAX NOTEPAD
You can also specify the direct location of the file by typing
the below command.
START /MAX C:\Windows\NOTEPAD.EXE
*Windows users who have a different directory (e.g. Windows 2000
users) would need to substitute WINNT or the name of their directory
in place of Windows in the above example.
The /m representing it to start the window Maximized. See our start command
page for additional information about this command.
Creating a batch file delay
Below is an example of how to delay a batch file any where from 5
to 99 seconds. In the below example we illustrate a 5 second
delay.
TYPE NUL | CHOICE.COM /N /CY /TY,5 >NUL
Additionally, you could use the sleep file found on our utility download
section.
How to make a time log in a batch
file
The below example demonstrates how to create a time log of when
the batch file is loaded, or for example, this could be used in the
autoexec.bat when someone logs into a computer that supports this
file.
ECHO. |TIME > TIME COPY LOG +TIME
An alternate, slightly more complicated method that, to our
knowledge, cannot be used in Windows NT, Windows 2000 or Windows ME
would be the following:
echo @prompt set date=$d$_set time=$t$h$h$h >
{a}.bat %comspec% /e:2048 /c {a}.bat > {b}.bat for %%v in
({b}.bat del) do call %%v {?}.bat echo %date% %time% >>
log
Another alternative is:
echo. |time |find "current" >> log
For the above batch file to work properly you must create a file
called "log", by typing: "edit log"
(without the quotes) and then save and exit the file that will be 0
bytes. If this file is not created or not created properly you will
receive the error message "Content of destination lost before
copy".
|