home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
TEXT
/
N7TIPS.ZIP
/
1014118.TXT
< prev
next >
Wrap
Text File
|
1994-03-04
|
26KB
|
763 lines
NOVELL TECHNICAL INFORMATION DOCUMENT
TITLE: Sample Configuration and Batch Processing Files
DOCUMENT ID: 014918
DOCUMENT REVISION: A
DATE: 27FEB94
ALERT STATUS: Yellow
INFORMATION TYPE: Issue
README FOR: NA
NOVELL PRODUCT and VERSION:
Novell DOS 7
ABSTRACT:
This document offers users an idea of the possible enhancements
that can be made to system configuration and batch files, using
the tools available in Novell DOS 7.
------------------------------------------------------------------
DISCLAIMER
THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO
NOVELL. NOVELL MAKES EVERY EFFORT WITHIN ITS MEANS TO VERIFY
THIS INFORMATION. HOWEVER, THE INFORMATION PROVIDED IN THIS
DOCUMENT IS FOR YOUR INFORMATION ONLY. NOVELL MAKES NO EXPLICIT
OR IMPLIED CLAIMS TO THE VALIDITY OF THIS INFORMATION.
------------------------------------------------------------------
ISSUE
NOVELL DOS 7 has greatly enhanced CONFIG and BATCH commands.
This document provides examples of how these various
commands can be used. For more information on batch file
commands and syntax refer to DOSBOOK, the NOVELL DOS 7
online User Guide. Also reading the following chapters from
DOSBOOK would be particularly helpful:
Chapter 7, "Batch Processing"
Chapter 8, "Command Reference"
Chapter 9, "Configuring the System"
Batch commands that were added since DR DOS 6.0 are the
following:
? Allows a yes or no branch in the same manner as
the "?" in the DR DOS 6.0 CONFIG.SYS command.
DIREXIST Added to evaluate whether a directory exists.
CHOICE Returns an error level for evaluation.
Only the basic ideas are outlined in each example that
follows. A batch file that illustrates the new NOVELL DOS 7
commands and their use is at the end of this document.
EXAMPLE 1 - THE USE OF GOTO IN THE CONFIG.SYS FILE
?"Do you want to run QEMM (y/n)? " goto QEMM
?"Do you want to run MemoryMAX (y/n)? " goto NWDOS
:QEMM
DEVICE=C:\QTR_DECK\QEMM386.SYS
DEVICE=C:\NWDOS\HIMEM.SYS
(additional QEMM driver lines go here...)
goto COMMON
:NWDOS
DOS=UMB
DEVICE=C:\NWDOS\EMM386.EXE /F=AUTO...
...
:COMMON
files=40
buffers=20
The GOTO statement is used to proceed directly to a label.
This function works similar to the GOTO statement found in
batch file processing.
EXAMPLE 2 - THE USE OF CHAIN IN THE CONFIG.SYS FILE
This example shows that you can link to other files that
hold your configurations for each system setup. In the
following CONFIG.SYS file, the two lines direct the
configuration process to the QCONFIG and MCONFIG.SYS files.
The appropriate FILES, BUFFERS, and so forth, information is
contained within those files and not within the main
CONFIG.SYS file. If the response to both questions is no, a
default configuration begins. The RETURN command cannot be
used to return to the parent CONFIG.SYS file.
?"Do you want to run QEMM (y/n)? " chain=QCONFIG.SYS
?"Do you want to run MemoryMAX (y/n)? " chain=MCONFIG.SYS
files=40
buffers=20
EXAMPLE 3 - USING "?" IN BATCH FILES
When you run a batch file containing a "?" statement, a
response to the prompt is required by the user before
processing continues.
Please note that the maximum length of a batch file
statement (including the ?) is 128 characters.
The following statement in a batch file causes the system to
prompt the user before deleting all the files with the
extension .OLD from C:\ACCOUNTS:
?DEL C:\ACCOUNTS\*.OLD
So, when the file executes, the user sees the following
prompt:
DEL C:\ACCOUNTS\*.OLD (Y/N) ?
If the user answers Y, the DEL command is run and the files
are deleted. If the user answers N, the command is ignored
and the next line in the batch file is processed.
EXAMPLE 4 - USING SWITCH/RETURN AND LABELS
Processing pauses on the SWITCH command until an option is
chosen. The appropriate option is selected by choosing a
number. The SWITCH command then goes to the corresponding
label. In the following example, 1 selects the label :XMS,
2 selects the label :EMS, and so forth. The RETURN command
will return processing to the line after SWITCH. Notice the
use of the ECHO statement for setting up the menu options.
ECHO = Choose which Memory you want and how to use it
ECHO =
ECHO = 1 (or ENTER) XMS Memory
ECHO = 2 EMS Memory
ECHO = 3 DPMI ON, XMS
ECHO = 4 DPMI ON, EMS
ECHO =
ECHO = Make your selection...
SWITCH XMS, EMS, DPMI_ON1, DPMI_ON2
GOTO DEFAULTS
:XMS
DEVICE=C:\NWDOS\EMM386.EXE /F=NONE /R=AUTO
RETURN
:EMS
DEVICE=C:\NWDOS\EMM386.EXE /F=AUTO /R=AUTO
RETURN
:DPMI_ON1
DEVICE=C:\NWDOS\EMM386.EXE /F=NONE /R=AUTO /DPMI=ON
RETURN
:DPMI_ON2
DEVICE=C:\NWDOS\EMM386.EXE /F=AUTO /R=AUTO /DPMI=ON
RETURN
:DEFAULTS
SHELL=C:\COMMAND.COM \C: /P /E:512
BUFFERS=20
FILES=30
DEVICEHIGH=C:\NWDOS\DPMS.EXE
etc...
EXAMPLE 5 - HOW TO USE ENVIRONMENT VARIABLES IN THE
CONFIG.SYS
The use of variables in the CONFIG.SYS file is not quite the
same as in batch files. Because the command processor
(COMMAND.COM) is not loaded until after the command in the
CONFIG.SYS file have been processed, the environment
variables are only stored. These variables are then passed
to the command processor, where they can be tested and
processed through the AUTOEXEC.BAT file or other batch
files. Testing an environment variable is not possible in
the CONFIG.SYS file. The CLS, CPOS, EXIT and SET commands
are featured in this example:
:DEFAULTS
SHELL=C:\COMMAND.COM \C: /P /E:512
BUFFERS=20
FILES=30
etc....
ECHO = Choose which TSRs and Utilities you want loaded at
BOOT
ECHO = time for this session.
ECHO =
ECHO = 1 (or ENTER) None... just continue
ECHO = 2 Mouse & Cursor Drivers
ECHO = 3 Keyboard "Speeder"
ECHO = 4 Novell Network
ECHO = 5 Done with selections
ECHO =
ECHO = Make your selection...
:MORE
CPOS 10,33
SWITCH NOTHING, CURSMOUS, SPEEDKEY, NOVELL, DONE
GOTO MORE
:NOTHING
:DONE
CLS
EXIT
:CURSMOUS
SET THINGS=ON
RETURN
:SPEEDKEY
SET SPEEDKEY=ON
RETURN
:NOVELL
SET NETWORK=ON
RETURN
The AUTOEXEC.BAT file now allows testing of the environment
variables and executes commands based upon the conditionals
illustrated below:
@ECHO OFF
VERIFY OFF
PATH C:\;C:\NWDOS;C:\BATS;C:\TOOLS;C:\WINDOWS
if "%things%"=="on" prompt
$e[s$e[0;70H$e[1;36m$t$e[u$e[1;36mDRDOS6$p$g$e[2;32m
if not "%things%"=="on" PROMPT [NOVELL DOS 7] $P$G
SET TEMP=C:\TEMP
IF NOT "%TEMP%"=="" MD %TEMP% >NUL
if "%things%"=="on" LH MOUSE
if "%things%"=="on" LH CURSOR /s10
if "%speedkey%"=="on" c:\nwdos\mode con:rate=30 delay=1
if "%network%"=="on" LH c:\lan\ipx
if "%network%"=="on" LH c:\lan\net3
EXAMPLE 6 - THE CHOICE COMMAND IN BATCH FILES
The CHOICE command is an external program that returns an
ERRORLEVEL for certain preselected keys. They can then be
tested with IF to make branches in a batch file. Up to 99
different errors can be returned. Three lines were used to
create this example:
CHOICE /C:XY Select X or Y for a message ...
CLS
IF ERRORLEVEL 2 ECHO MESSAGE: CHOICE RETURNED AN ERRORLEVEL
OF 2
IF ERRORLEVEL 1 ECHO MESSAGE: CHOICE RETURNED AN ERRORLEVEL
OF 1
The switch /C:XY instructs choice to use the keys X and Y.
They are not case sensitive. The letter X will be
errorlevel 1 and Y will be errorlevel 2.
The remaining text is the displayed message. Because you
chose the letter Y you actually received two messages. This
points out one of the tricks to using ERRORLEVEL. When the
ERRORLEVEL is tested, a logic is used that considers the
statement to be true if the value is equal to or greater
than the returned error.
In the example used here: ERRORLEVEL=2 (letter Y), is true
so the message is displayed. The second statement IF
ERRORLEVEL 1 is also true (because the returned value of 2
is greater than or equal to 1) so the message is displayed.
You should always perform the IF tests beginning with the
highest ERRORLEVEL first. This is because the IF evaluates
the statement based on whether the returned value is equal
or greater than the IF statement.
In the example used here: ERRORLEVEL=1 (letter X). The
first statement IF ERRORLEVEL 2 is FALSE, so the message is
not displayed. The second statement IF ERRORLEVEL 1 is true
so the message is displayed.
This example used an ECHO; however, a GOTO works best on
ERRORLEVEL. This prevents you from going to the next IF
ERRORLEVEL (which is 0 and will also be true). The syntax
for the GOTO is:
IF ERRORLEVEL 2 GOTO label2
IF ERRORLEVEL 1 GOTO label1
:label2
ECHO = CHOICE RETURNED AN ERRORLEVEL OF 2
:label1
ECHO = CHOICE RETURNED AN ERRORLEVEL OF 1
EXAMPLE 7 - DIREXIST IN THE IF COMMAND
This command when used with IF will check to see if a
directory exists:
IF DIREXIST F:\ GOTO [:label]
The DIREXIST command can be used to test for the existence
of drives such as DISK's as well as any subdirectory on a
disk. All disk drive have a root directory, so testing for
F:\ (as in this example) will test for the existence of the
drive as well as the directory. Network drives can be
tested.
OTHER EXAMPLES
1. Selecting different configuration options from the
CONFIG.SYS file using the ? command.
?SHELL=C:\COMMAND.COM C:\ /P /E:512
?SHELL=C:\COMMAND.COM C:\ /P /E:1024
?BREAK=OFF
?BREAK=ON
BUFFERS=20
FILES=20
?HISTORY=ON, 256, ON, OFF, OFF
?DEVICE=C:\NWDOS\ANSI.SYS
2. Selecting different AUTOEXEC.BAT's from CONFIG.SYS
using the ? and the SHELL statement. In the SHELL
statement the /P switch can be followed by a file name.
When present, the named file will be executed instead
of the AUTOEXEC.BAT file. The named file must have a
.BAT extension and cannot exceed 11 characters
including path.
?"Default Autoexec? (y/n) "SHELL=C:\COMMAND.COM C:\ /P
/E:256 ?"Alternate Autoexec? (y/n)
"SHELL=C:\COMMAND.COM C:\ /P:ALTERNAT.BAT /E:256
3. Selecting and using different configuration files from
CONFIG.SYS at bootup.
?"Do you want to run Windows? (y/n) " chain =
WCONFIG.SYS
?"Do you want to use QEMM? (y/n) " chain = QCONFIG.SYS
?"Do you want to use MemoryMAX? (y/n) " chain =
MCONFIG.SYS
?"Do you want to use 386MAX? (y/n) " chain =
386CONF.SYS
Each line is printed on the screen and you are asked to
load and run the chained configuration file. Each
configuration file is a complete CONFIG.SYS type file
with all the appropriate options.
4. The above configuration using "menu" choices with
SWITCH. Note how the "SET environment" variables can
be used and tested for different AUTOEXEC type files in
this example.
CONFIG.SYS
ECHO = 1 For Windows Configuration
ECHO = 2 For QEMM Configuration
ECHO = 3 For NOVELL DOS 7 MemoryMAX Configuration
ECHO = 4 For 386MAX Configuration
ECHO = 5 For no Configuration... just exit
SWITCH win, qemm, memm, 386m, none
:none
set autoexec=norm
exit
:win
set autoexec=win
chain=wconfig.sys
:qemm
set autoexec=qemm
chain=qconfig.sys
:memm
set autoexec=memm
chain=mconfig.sys
:386m
set autoexec=386m
chain=386conf.sys
AUTOEXEC.BAT
@echo off
PATH C:\NWDOS;C:\;C:\UTIL;
VERIFY OFF
PROMPT $P$G
DISKMAP C: D:
IF "%autoexec%"=="norm" goto NWDOSEXIT
SHARE /L:40
IF "%autoexec%"=="win" SUPERPCK /EM /L:2048
IF "%autoexec%"=="qemm" CALL QEMM.BAT
IF "%autoexec%"=="memm" SUPERPCK /A /L:2048
IF "%autoexec%"=="386m" CALL 386.BAT
:NWDOSEXIT
5. Using ANSI
ANSI escape sequences can be used in batch file
processing to create colorful menus. Below is an
example of a menu that uses the SWITCH command and ANSI
escape sequences to create a menu. ANSI.SYS must be
loaded in the CONFIG.SYS file to allow for cursor
positioning and colors.
The first character after the Echo statement is an
ASCII 27 or escape character. This character may be
displayed differently on some printers and monitors (in
fact if you have ANSI loaded you will never see the
character when typed to the screen).
To type this character using the NOVELL DOS 7 EDIT,
press the <Ctrl>+<P> then the ESC key. An alternate
method is to press <CTRL>+Q then the N key and then
type the number 27. Within EDIT, the ESC character
will appear as: ^[.
If you have downloaded this document from CompuServe or
the Novell Desktop System Group BBS, the escape
sequences have been left intact and you can use the
NOVELL DOS 7 EDIT to block out the Echo statements to a
file. Then, if ANSI is loaded when the file is typed
to the screen, you should see white letters on a
magenta background.
For additional information on ANSI.SYS and escape
sequences, refer to Chapter 9 of DOSBOOK, the NOVELL
DOS 7 online User Guide.
@ECHO OFF
ECHO
---------------------------------
ECHO
1. CONTINUE W/O SCAN
ECHO
2. SCAN FOR VIRUSES
ECHO
ECHO
-----------------------------------
SWITCH MENUBEGIN,SCAN
SAMPLE.BAT
If you have gotten this file from CompuServe or the NOVELL
Desktop Systems Group BBS, you can run this sample batch
file.
Starting on the next line, mark a block to the end of file
(excluding any word processor control characters) and write
the block to a new file called SAMPLE.BAT. From the command
prompt SAMPLE will run the file.
CLS
@ECHO OFF
REM EXAMPLE1 ******************************************
ECHO This batch file demonstrates some of the unique
ECHO features of Novell DOS batch commands.
ECHO.
ECHO.
ECHO The first example tests to make sure you are using
ECHO Novell DOS. It uses an IF statement. The IF
ECHO tests for an environment variable called OS.
ECHO Press a key to begin.
PAUSE>NUL
ECHO.
ECHO The Operating System variable indicates "%OS%".
IF NOT "%OS%"=="NWDOS" GOTO WRONGDOS
ECHO This means that the current operating system
ECHO is Novell DOS.
ECHO.
ECHO Below is the line that was used in the batch file:
ECHO.
ECHO IF NOT "%%OS%%"=="NWDOS" GOTO WRONGDOS
ECHO.
ECHO The environment table contains the line: OS=%OS%.
ECHO This was inserted automatically by Novell DOS.
ECHO The batch processor replaces "%%OS%%" with "%OS%"
ECHO from the environment table. Since "%OS%" is
ECHO equal to "NWDOS", the statement is false and the
ECHO GOTO is not executed.
ECHO.
ECHO IF statements are only executed if TRUE. The
ECHO logic of the above statement can be confusing
ECHO because at first glance it looks true. However,
ECHO the NOT portion reverses the statement to
ECHO something like "IF "%OS%" IS NOT EQUAL TO
ECHO "NWDOS" THEN GOTO WRONGDOS." Press any key when
ECHO you are ready to continue.
PAUSE>NUL
CLS
REM EXAMPLE2 ******************************************
ECHO.
ECHO This next example is the CHOICE command.
ECHO.
CHOICE /C:XY Select X or Y for a message ...
CLS
IF ERRORLEVEL 2 ECHO MESSAGE: CHOICE RETURNED AN ERRORLEVEL
OF 2
IF ERRORLEVEL 1 ECHO MESSAGE: CHOICE RETURNED AN ERRORLEVEL
OF 1
ECHO.
ECHO The CHOICE command is an external program that
ECHO returns an ERRORLEVEL for certain preselected keys.
ECHO They can then be tested with IF to make branches
ECHO in a batch file. Up to 99 different errors can be
ECHO returned. Three lines were used to create this
ECHO example:
ECHO.
ECHO CHOICE /C:XY Select X or Y for a message ...
ECHO IF ERRORLEVEL 2 ECHO MESSAGE: CHOICE RETURNED
ECHO AN ERRORLEVEL 2 IF ERRORLEVEL 1 ECHO
ECHO MESSAGE: CHOICE RETURNED AN ERRORLEVEL 1
ECHO.
ECHO The switch /C:XY tells choice to use the
ECHO keys X and Y. They are not case sensitive.
ECHO The letter X will be errorlevel 1 and
ECHO Y will be errorlevel 2. The remaining text
ECHO is the displayed message.
ECHO.
IF ERRORLEVEL 2 ECHO Because you chose the letter Y you
actually received two messages.
IF ERRORLEVEL 2 ECHO This points out one of the tricks to
using ERRORLEVEL. When the
IF ERRORLEVEL 2 ECHO ERRORLEVEL is tested a logic is used
that considers the statement to be
IF ERRORLEVEL 2 ECHO true if the value is equal to or
greater than the returned error. In the
IF ERRORLEVEL 2 ECHO example used here: ERRORLEVEL=2 (letter
Y),
IF ERRORLEVEL 2 ECHO is true so the message is displayed.
The second statement
IF ERRORLEVEL 2 ECHO IF ERRORLEVEL 1 is also true (because
the returned value of 2 is greater
IF ERRORLEVEL 2 ECHO than or equal to 1) so the message is
displayed.
IF ERRORLEVEL 2 GOTO ERROR2
IF ERRORLEVEL 1 ECHO You should always perform the IF tests
beginning with the highest
IF ERRORLEVEL 1 ECHO ERRORLEVEL first. This is because the
IF evaluates the statement based
IF ERRORLEVEL 1 ECHO on whether the returned value is equal
or greater than the IF statement.
IF ERRORLEVEL 1 ECHO In the example used here: ERRORLEVEL=1
(letter X). The first statement
IF ERRORLEVEL 1 ECHO IF ERRORLEVEL 2 is FALSE so the message
is not displayed. The second
IF ERRORLEVEL 1 ECHO statement IF ERRORLEVEL 1 is true so
the message is displayed. This
IF ERRORLEVEL 1 ECHO example used an ECHO but a GOTO works
best on ERRORLEVEL. This prevents
IF ERRORLEVEL 1 ECHO you from going to the next IF
ERRORLEVEL (which is 0 and will also be
IF ERRORLEVEL 1 ECHO true). EDIT this batch file to see how
the tests are performed.
:ERROR2
pause
CLS
REM EXAMPLE3 ******************************************
ECHO.
ECHO Next is a check to see if a directory exists. Novell
ECHO DOS has a command called DIREXIST. This command
ECHO when used with IF will check to see if the
ECHO directory F:\ exists. Press any key to begin.
PAUSE>NUL
IF DIREXIST F:\ GOTO EXIST
CLS
ECHO.
ECHO The directory does not exist!
ECHO The command was:
ECHO.
ECHO IF DIREXIST F:\ GOTO EXIST
ECHO.
ECHO The directory did not exist, so the GOTO was
ECHO not executed.
ECHO.
ECHO The DIREXIST command can be used to test for the
ECHO existence of drives such as VDISK's as well as any
ECHO subdirectory on a disk. All disk drive have a root
ECHO directory so testing for F:\ (as in this example)
ECHO will test for the existence of the drive as well
ECHO as the directory. Network drives can be tested.
GOTO EXAMPLE4
:EXIST
CLS
ECHO.
ECHO The directory exists!
ECHO The command was:
ECHO.
ECHO IF DIREXIST F:\ GOTO EXIST
ECHO.
ECHO The directory does exist, so the GOTO was
ECHO performed.
ECHO.
ECHO The DIREXIST command can be used to test for the
ECHO existence of drives such as VDISK's as well as any
ECHO subdirectory on a disk. All disk drives have a
ECHO root directory so testing for F:\ (as in this
ECHO example) will test for the existence of the drive
ECHO as well as the directory. Network drives can
ECHO be tested and in fact F:\ may be one of your
ECHO network drives.
ECHO.
REM EXAMPLE4 ******************************************
:EXAMPLE4
ECHO Press any key to continue
PAUSE>NUL
CLS
ECHO The SWITCH command can be used in both Batch
ECHO files and Config files. It waits for a number
ECHO to be entered and then performs a GOSUB. The
ECHO TIMEOUT command used in the CONFIG.SYS file
ECHO will result in the first option being chosen.
ECHO Also, the ENTER key will also be accepted as
ECHO the first option.
ECHO.
ECHO Select 1 or 2
ECHO.
ECHO Option 1 has a RETURN. Option 2 does not have
ECHO a RETURN and functions like a GOTO.
ECHO.
SWITCH LABEL1,LABEL2
ECHO.
ECHO This is the RETURN.
GOTO PRELUDE1
:LABEL1
CLS
ECHO This is the first switch!
RETURN
:LABEL2
CLS
ECHO This is the second switch!
ECHO.
ECHO The SWITCH lines looked like this:
ECHO SWITCH LABEL1,LABEL2
ECHO ECHO.
ECHO ECHO This is the RETURN.
ECHO GOTO PRELUDE1
ECHO.
ECHO :LABEL1
ECHO ECHO This is the first switch!
ECHO RETURN
ECHO.
ECHO :LABEL2
ECHO ECHO This is the second switch!
ECHO etc...
ECHO.
ECHO :PRELUDE1
ECHO.
ECHO You selected the key 2 so SWITCH did a GOSUB
ECHO to the label :LABEL2. There was no RETURN in
ECHO LABEL2 so it continued to the LABEL, PRELUDE1.
ECHO Press any key to continue.
PAUSE>NUL
GOTO EXAMPLE5
:PRELUDE1
ECHO.
ECHO The SWITCH lines looked like this:
ECHO SWITCH LABEL1,LABEL2
ECHO ECHO.
ECHO ECHO This is the RETURN.
ECHO GOTO PRELUDE1
ECHO.
ECHO :LABEL1
ECHO ECHO This is the first switch!
ECHO RETURN
ECHO.
ECHO :LABEL2
ECHO ECHO This is the second switch!
ECHO etc...
ECHO.
ECHO :PRELUDE1
ECHO.
ECHO You selected the key 1 so SWITCH did a GOSUB to
ECHO the label :LABEL1. The RETURN brought it back
ECHO to the line immediately after the SWITCH.
ECHO Press any key to continue.
PAUSE>NUL
REM EXAMPLE5 ******************************************
:EXAMPLE5
CLS
ECHO This example displays some of the System
ECHO Information Variables (SIV's). The SIV's are
ECHO special variables that can be used in batch
ECHO files to help control execution or just to make
ECHO the OS "friendlier". Press any key to continue.
PAUSE>NUL
ECHO.
ECHO Good %Greeting_Time%. The current computer time
ECHO is %Hour24%:%Minute%:%Second%.
ECHO.
ECHO Today's date is %Month_Name% %Day%, %Year%.
ECHO.
IF NOT "%Login_Name%"=="" ECHO You are logged into the
Network as %Login_Name%.
ECHO.
IF NOT "%Station%"=="" ECHO You are attached to station
%Station%.
ECHO.
GOTO END
:WRONGDOS
ECHO.
ECHO If you were running Novell DOS the OS variable
ECHO would return "NWDOS." Since all of the tests
ECHO performed by this batch file need Novell DOS
ECHO to work correctly this batch program will now
ECHO stop. Please try again when Novell DOS is running.
ECHO.
:END
ECHO Thanks for running this Sample batch file.
ECHO Please feel free to explore the contents of the
ECHO file. The examples displayed in this file are
ECHO fairly straightforward. Much more sophisticated
ECHO batch files can be easily made. Experiment!