Batch File ReadMe
already know about the /? "help" option that every DOS
responds to. Here's where to find more help.
Windows XP Batch Help:
Go to "Start", then "Help and Support", then under the "Pick a Task"
section, select the "Tools" link. At the very bottom of the Tools
list, you'll find three entries that will help you with your
command-line batch questions. The best thing there is the "Command-line
reference A-Z". Be sure to read about:
If you have an OEM version of Windows (Like Dell, where they replaced
the Help section with something else), you may need to read the XP Command-line reference A-Z on the web.
In my opinion, the Tools "Command shell overview" entry is too advanced
for a beginner, but if you've already got some batch experience,
this might be what you need. If you don't have "Help and Support" in your Start menu,
right-click the Start button and select "Properties", then on the
"Start Menu" tab, select the "Start menu" option and click the
"Customize" button. Go to the "Advanced" tab, and select "Help
and Support" on the "Start menu items:" list.
Windows 2000 Batch Help: Go to "Start", then "Help", then "Reference", then "MS-DOS
Commands". No kidding! Do it now! Find the help. Read the help. The things
you need to learn the most are the two entries for these :
Be sure to follow the "For" link for the "additional forms of the for
command". Also get a command prompt and type this:
For some reason, the "Help" file has zero good info on the "set"
command. You have to get the command prompt "/?" help to get the good
stuff. If you want extra credit, you can read the sections on:
Conditional processing symbols
Those items aren't needed too often, but they can help you to do things
in a cleaner or more structured way.
Windows 95/98 Batch Help: You may wonder why
command help by using the Help icon on the Start menu. I wonder too.
you get the missing "OldDos" commands, you'll get
the HELP command. You can find the OldDos commands on your Windows 9x CDROM in
the \Other\Oldmsdos directory or from:
You should know the "Help.com" command requires use of the "Qbasic.exe"
and "Help.hlp" files as well. Other useful DOS commands are winset.exe and shortcut.exe.
lets you set environment variables globally (they persist once your
file ends). Shortcut lets you make and modify shortcuts from the
line. You'll find both of these together as "envars.exe" on your CDROM
under \Admin\Apptools\Envvars or from Microsoft at:
No Matter What You Use, the "FOR" command has enough power that it can solve ninety percent
of all your problems. Really! Reading the entry on the FOR command
should take you about a half hour. While reading, you'll confirm your
suspicion (around the time you are reading the difference between
single quotes, double quotes, and back quotes) that Bill Gates is mad.
The stuff on the "set" command and the "parameters" will be
much easier to understand. Those two (along with "for") will solve 99%
of all your batch problems. Just don't bother trying to memorize it.
Just read all of it so you know what it can do. You can always look up
the details later when you need to actually use it.
The |<>@ symbols
Use the "pipe" character "|" (the vertical bar) to send the output from
a command into the input of another command. For example:
type test.txt | program.exe
That would send the output of the "type" command into the input of the
"program.exe" command. The "type" command in this case would be putting
out the contents of the file "test.txt". The "program.exe" would (in
theory) accept that as it's input instead of accepting input from the
keyboard. Use redirection characters ">" and "<" to send output
between files and programs. Notice the difference? The pipe sends stuff
between two PROGRAMS. Redirection is between a program and a FILE. The
redirection arrow lets you know what direction the data is flowing. For
would take the output of "program.exe" and put it in the file
"test.txt" INSTEAD of displaying it on the screen. The data flows out
of the program "program.exe" and into the file "test.txt". On the other
Would cause "program.exe" to use "test.txt" as it's input INSTEAD of
taking input from the keyboard. The data flows out of the file
"test.txt" into the program "program.exe". So these two lines are
different ways of doing the same thing:
They both end up telling "program.exe" to use the data in "test.txt" for
input instead of using the keyboard. The difference between ">" and
">>" is that ">"
normally creates a new file, replacing what was there, while ">>"
just adds to the end of the file (If the file doesn't already exist, it
will be created). You can even use redirection in non-intuitive order
and it still works. For example, these two lines do the same thing:
Why do it the second way? Sometimes the second way looks neater when
you have lots of program commands going into a single file.
The "@" symbol can be put on the beginning of any command to stop the
command from appearing on the screen. Any output from the program goes
to the screen, but the command itself doesn't. For example, on a "dir"
command, I only want to see a list of files. I do NOT want to see the
command "dir". Normally, you can turn off all screen echoes by
using the "echo off" command. So anything after the "echo off" command
only shows program output. Unfortunately, the echo command still gets
echoed! However, if you put an @ sign in front of the echo command, it
turns off the echo from the echo command. That's why most batch files
start with this:
Writing your first batch program
You'd be surprised how many
are in that narrow transition period of knowing how to type commands,
not knowing how to put them together in a batch file. Here is the short
version: Get yourself a DOS prompt. Type in the commands you need to do
whatever it is you need to do. If your commands work, open up Notepad
type those SAME COMMANDS in the SAME ORDER. Don't type what appeared on
the screen, just type what you actually typed in. Save that file with a
bat extension ( For example "test.bat"). Now instead of having to type
the commands, you can just double-click the batch file. Sure, your
batch file may only have two or three commands, but it counts. It's a
Lost? Look at the site map.
Bad links? Questions? Send me mail.