ONBOOT is a simple utility designed for your AUTOEXEC.BAT. It
allows you to have AUTOEXEC run selected programs only during a
warm boot (Ctl-Alt-Del), a cold boot (power on), or the first
boot of the day. For example, placing the command "ONBOOT DAILY
CHKDSK" into AUTOEXEC will cause AUTOEXEC to run CHKDSK only
once a day, the first time the PC is turned on.
ONBOOT requires DOS 3.0 or later in DAILY mode, 2.0 or later in
Using ONBOOT is quite simple. The full command is:
onboot WARM|COLD|DAILY [/C] command [parameters]
The first parameter must be one of the three boot selectors,
"WARM", "COLD", or "DAILY":
WARM Execute the command only if this is a warm boot. A
warm boot is a "reboot", caused by pressing
Ctl-Alt-Del or, on some machines, a reset switch.
COLD Execute the command only if this is a cold boot. A
cold boot is a power-up boot, resulting from turning
the machine on.
DAILY Execute the command only if the system date has
changed since the last time ONBOOT DAILY was run.
"Command" can be any command that you would normally put into
AUTOEXEC.BAT (with minor restrictions as explained below), or it
can be another batch file. It is specified exactly as you would
specify it if you were running it directly. For example, a path
is required if the command to be executed is not in the current
directory or anywhere in the current PATH. File extensions
(COM, EXE, BAT) are not required.
Parameters to the command are also specified normally.
onboot daily chkdsk
onboot cold ramtest full /count=3
onboot warm ramtest quick
| If ONBOOT doesn't correctly distinguish between a warm and a
| cold boot, see "Use on compatibles" below, which explains about
| the /C switch.
Restrictions on commands
ONBOOT executes the requested command by giving it to a
secondary copy of the command shell (normally COMMAND.COM) for
processing. Thus, anything you could normally execute at the
DOS prompt can be run by ONBOOT: an internal DOS command, a
program or external DOS command (COM and EXE files), or a batch
file. There are only two restrictions:
1. Because the new copy of the command shell will drag along a
new copy of the environment, commands that set or modify
environment strings will not work as you expect. Therefore,
don't use ONBOOT to execute SET, PATH, or PROMPT commands.
2. Don't use ONBOOT to execute commands or batches that will
load resident programs (TSRs). These include the obvious ones
like Sidekick, et al, as well as some DOS programs such as
PRINT, certain variants of MODE, etc.
It is difficult to imagine why you would want to load TSRs or
set strings in the environment only on certain kinds of boots,
so these restrictions should not present any real problems.
Running multiple commands DAILY
You can use as many ONBOOT WARM and ONBOOT COLD commands in
AUTOEXEC as you wish. However, ONBOOT DAILY will only run once
a day, so having more than one ONBOOT DAILY command in AUTOEXEC
doesn't make sense; only the first one will ever get run.
If you want to execute more than one command DAILY, put them in
a separate batch file and execute it DAILY from AUTOEXEC. For
onboot daily onceaday
Each day, ONBOOT will run ONCEADAY.BAT, which will then run the
three commands shown. When ONCEADAY.BAT is done, AUTOEXEC will
pick up again with the next command.
ONBOOT.EXE date stamp
ONBOOT determines how recently it was run by the simple
expedient of looking at its own date stamp. Each time ONBOOT
DAILY is run successfully, ONBOOT updates the date stamp of the
program file, ONBOOT.EXE (this eliminates the need for a
separate data file to track dates). If the date of ONBOOT.EXE
is different from the current system date, the DAILY stuff will
get executed. If they are the same, DAILY has already run
today, and the command will not be executed.
You don't really need to know this; it's just in case you ever
wondered why ONBOOT.EXE always appears to be brand new in your
| Use on compatibles
| ONBOOT determines whether the boot is warm or cold by looking at
| a flag in BIOS's data area. It has been reported that some
| IBM-compatible computers don't use this flag in the same way
| that IBM machines do, so it's possible that ONBOOT may not be
| able to correctly distinguish between warm and cold boots on all
| systems. In particular, problems have been reported with some
| AST machines (AST Premium 286, for example).
| This may also occur on IBM systems if the BIOS boot flag has
| been altered since the last boot.
| If your machine does not seem to be correctly determining warm
| vs. cold boots, try adding a /C switch between the WARM or COLD
| and the command:
| onboot cold /C chkdsk
| The /C (for Compatible) switch slightly alters ONBOOT's boot
| determination, and it might work correctly on your system.
| The switch MUST appear between the WARM or COLD and the command.
| It has no effect on DAILY boots.
ONBOOT uses a bit under 2K of memory for itself. The command
procesoor uses a bit more, typically under 4K for COMMAND.COM.
Thus, the commands run by ONBOOT will have about 6K less memory
to work with than normal. ONBOOT is not resident, so it uses no
memory except when it is actually executed.
Incorrect version of DOS
ONBOOT requires DOS 2.0 or later for WARM/COLD, and DOS 3.0
or later for DAILY.
You must supply a command to be run
You didn't give ONBOOT a command to be executed.
Can't find COMSPEC= in environment
Your environment must contain a COMSPEC statement to help
ONBOOT find the command processor. DOS does this
automatically, so it will only be missing if you have taken
specific action to eliminate it, i.e., by executing a
in AUTOEXEC before running ONBOOT.
Problem executing command shell
ONBOOT wasn't able to give your command to the command
processor (COMMAND.COM) for execution. Either the command
processor is missing (isn't where COMSPEC says it is) or
there isn't enough memory available.
Error opening ONBOOT.EXE for date check
ONBOOT wasn't able to locate and open the program file
ONBOOT.EXE so that it could check its date.
Unable to update timestamp on ONBOOT.EXE
ONBOOT wasn't able to change the date of ONBOOT.EXE to
today's date. DAILY commands will continue to run with
every boot until you locate the source of the problem.
Added /C switch.
This document and the program file ONBOOT.EXE ("the software")
are copyrighted by the author. The copyright owner hereby
licenses you to: use the software; make as many copies of the
program and documentation as you wish; give such copies to
anyone; and distribute the software and documentation via
electronic means. There is no charge for any of the above.
However, you are specifically prohibited from charging, or
requesting donations, for any such copies, however made; and
from distributing the software and/or documentation with
commercial products without prior permission. An exception is
granted to not-for-profit user's groups, which are authorized to
charge a small fee (not to exceed $7) for materials, handling,
postage, and general overhead. NO FOR-PROFIT ORGANIZATION IS
AUTHORIZED TO CHARGE ANY AMOUNT FOR DISTRIBUTION OF COPIES OF
THE SOFTWARE OR DOCUMENTATION, OR TO INCLUDE COPIES OF THE
SOFTWARE OR DOCUMENTATION WITH SALES OF THEIR OWN PRODUCTS.
THIS INCLUDES A SPECIFIC PROHIBITION AGAINST FOR-PROFIT
ORGANIZATIONS DISTRIBUTING THE SOFTWARE, EITHER ALONE OR WITH
OTHER SOFTWARE, AND CHARGING A "HANDLING" OR "MATERIALS" FEE OR
ANY OTHER SUCH FEE FOR THE DISTRIBUTION. NO FOR-PROFIT
ORGANIZATION IS AUTHORIZED TO INCLUDE THE SOFTWARE ON ANY MEDIA
FOR WHICH MONEY IS CHARGED.
The software may not be included with distribution of commercial
or "shareware" software without a license from The Cove Software
No copy of the software may be distributed or given away without
this document; and this notice must not be removed.
There is no warranty of any kind, and the copyright owner is not
liable for damages of any kind. By using this free software,
you agree to this.
The software and documentation are:
Copyright (C) 1988, 1989 by
The Cove Software Group
Christopher J. Dunford
P.O. Box 1072
Columbia, Maryland 21044
CompuServe 76703,2002 [IBMNET]