DOS Lesson 16: Practicing Batch Files with ECHO

In the last lesson, we introduced the idea of batch files. But
to really learn about them, you should practice creating some batch files. Please
note that you can generally get similar results using the command prompt window
in your version of Windows, but I am using DOS 6.22 commands here, and I test
and run all of my batch files on a computer running DOS 6.22. It is possible
that some small difference in versions may affect your results, and I have not
tested these on every platform in existence.

Temporary directory

I suggest that you create a temporary directory on your machine
just for playing around with these batch files. It is a bad habit to save these
things in the root directory. First, you may not remember which files are your
test files and which are vital system files, and later delete something important
by mistake. Second, the root directory, like all directories, can only hold
a limited number of files, so you don’t want to use up slots with this stuff.
Third, if you need to find one of them, it is a lot easier if they are all in
their own area. I call mine c:\dostemp\, which I will assume for this lesson

ECHO

The echo command controls what gets shown on the screen when you
run a batch file. You can use the echo command to stop the display, or to make
something display, as you wish. For instance, here is a simple one line batch
file:

echo Hello people, how is life in the carbon world?

If you create this file and run it, you will see the sentence
displayed on the screen. Try creating this file as test1.bat in your temporary
directory.

This can be useful when you want to display some piece of text.
For instance, in many DOS installation programs, you would see something on
the screen that told you to wait while the installation program was doing something.
Or, in a networked environment you could display a login message.

Another use of the ECHO command has to do with the way that batch
files normally execute. A batch file just executes DOS files in order, much
the same as if you were at the keyboard typing in each command. Well, if you
were at the keyboard, you would see each of the commands you typed. Try creating
the following file, which is called test2.bat:

copy test1.bat test1a.bat

When you execute this file, you should see, first, your command
itself, running in your current working directory, followed by the computer
reply that a file was copied.

C:\DOSTEMP\>copy test1.bat test1a.bat

1 file(s) copied

Now, seeing this displayed on the screen may not bother you, but
there are times when you don’t want to see it, or you don’t want others to see
what is in the file (such as in a login script). You can use the ECHO command
to stop that. So edit your test2.bat file to add the following line, which should
be the very first line in your file:

echo off

Now, run test2.bat again, you will see that the command is no
longer displayed on the screen. However, the first line, ECHO OFF, is displayed.
You can stop this by using the @ symbol at the beginning of the first line:

@echo off

The @ symbol can be used at the beginning of any line to stop
the display of that line in the batch file. This may sound similar to the REM
command, but there is a big difference. The REM command stops the line from
being executed, but the @ symbol still executes the line, it just stops the
display.

In most batch files, it makes more sense to turn off the display
of all commands, so you usually see the @ symbol used only in the very first
line to turn off the display of the ECHO command.

What if you wanted to display a blank line? You might think that
the ECHO command all by itself, with nothing after it, would do the trick, but
you would be wrong in that case. The ECHO command by itself asks the computer
to respond whether ECHO is on or off, so you will get “ECHO is off”
displayed on the screen. The way to get a blank line is to use a + sign immediately
after the ECHO: ECHO+

Stupid DOS Tricks

While the ECHO command is intended primarily for use within batch
files, it can be used within DOS. A practical joke you could pull on someone
in the DOS days was to get to their computer while they were at the old water
cooler, and type the command “echo off” at the DOS prompt. It would
have the effect of turning off the display of the DOS prompt. Since only the
very geekiest of geeks had ever seen anything like this, it drove most people
crazy.