View Single Post
Old 03-24-2005, 10:36 AM   #6 (permalink)
trache
Insane
 
trache's Avatar
 
John:

Usually (but not always!) MS-DOS-based programs exit with errorlevel 0 upon success, otherwise it is something else (it could be any number really, this is chosen by the programmer of said application).

From XCOPY, a web page I found about said command, it states:

Quote:
Errorlevels

* 0 Files were copied without error
* 1 No files were found to copy
* 2 The user pressed CTRL+C (^C) to terminate XCOPY
* 4 Initialization error occurred. There is not enough memory or disk space, or you entered an invalid drive name or invalid syntax on the command-line
* 5 Disk write error occurred
So, in your batch file you could write the following:

Code:
XCOPY <parameters>
IF ERRORLEVEL 5 GOTO DISKERROR
IF ERRORLEVEL 4 GOTO INITERROR
IF ERRORLEVEL 2 GOTO CTRLC
IF ERRORLEVEL 1 GOTO NOFILES
IF ERRORLEVEL 0 GOTO SUCCESS
GOTO END

:DISKERROR
echo A disk error occured.
REM This line is a REMARK line (or comment).  It does nothing.
REM You can put any commands you want here!  When the batch file
REM hits GOTO END, it will do just that - go to the label marked "END".
GOTO END

:INITERROR
echo  Initialization error occurred. There is not enough memory or disk space, or you entered an invalid drive name or invalid syntax on the command-line.
GOTO END

:CTRLC
echo User pressed CTRL-C!
GOTO END

:NOFILES
echo No files were found to copy.
GOTO END

:SUCCESS
echo Files were copied successfully!
GOTO END

:END
echo Done.
Just a note on batch files: You must put the errorlevel checks in decreasing order - MS-DOS/XP-DOS was changed from the original code in such a way that makes it broken in this regard.

I wish I could dig up the batch file I wrote for my BBS I operated a few years ago (on a 2400 baud modem!). It was a couple of pages long and did everything - ran Binkley, all my nightly maintenance scripts and handled my echomail!
__________________
"You looked at me as if I was eating runny eggs in slow motion." - Gord Downie of The Tragically Hip

Last edited by hrdwareguy; 03-24-2005 at 02:05 PM.. Reason: edited to fix problem in code tag
trache is offline  
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76