China DOS Union

-- Unite DOS · Advance DOS · Grow DOS --

Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum
DOS stands for freedom, openness and progress. Let us work hard, learn from the openness and GNU spirit of FreeDOS and Linux, and together build and grow a free GNU GPL world!

中国DOS联盟论坛
The time now is 2026-06-24 13:16
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [Repost] Errorlevel information returned by batch commands (for Windows 95/98/ME) View 6,253 Replies 1
Original Poster Posted 2005-07-16 21:50 ·  中国 山西 运城 中移铁通
元老会员
★★★★
Batchinger
Credits 4,432
Posts 1,512
Joined 2002-10-18 00:00
23-year member
UID 19
Gender Male
Status Offline

Allenware.com Batch Library
Informative ERRORLEVELs returned by Batch commands
For use in Windows 95/98/ME

===Version

This is version 1.04

Find the current version of this ERRORLEVELs file on our Website:

http://www.allenware.com/mcsw/errorlevels.zip


===Disclaimer

This package is provided free of charge, and is supplied only for
educational and study purposes. Use it entirely at your own risk.
No warranties are given. Never use a computer unless all valuable
data are safely backed up and you know how to restore them again.


===Using ERRORLEVELs in Batch files

Full details of how to test, and act upon, ERRORLEVEL values that
are returned by Batch commands are in our free, interactive Batch
File Course. You can see a detailed Syllabus and Lesson Index at:

http://www.allenware.com/icsw/icswidx.htm


===ERRORLEVELs in Windows 95/98/ME

Most of the usual external command operations return ERRORLEVEL 0
and this usually (but NOT invariably) indicates that no error was
encountered. In the case of FIND, the ERRORLEVEL 0 indicates that
the target string has been found (mnemonic=f0und), and ERRORLEVEL
1 indicates the target string was missing (mnemomic=m1ssing). The
list below details informative ERRORLEVELs returned by the common
external commands. In Windows 95/98/ME, internal commands (namely
those coded in COMMAND.COM) do not change the current ERRORLEVEL.

Note: CommandName /? (use of the online help switch to return the
normal Brief help) returns ERRORLEVEL 0, unless otherwise stated.

Note: when a command encounters a device not ready condition (and
possibly generates the Abort, Retry, Fail message), the reply you
give (or supply automatically in a COMMAND.COM /f/c Fail-continue
shell) sometimes affects what ERRORLEVEL the command will return.


ATTRIB.EXE
(a) Target file/folder not found = ERRORLEVEL 1
(b) Invalid switch = ERRORLEVEL 1
(c) Sharing violation (target file in use) = ERRORLEVEL 1
(d) Invalid drive specification = ERRORLEVEL 1
(e) Drive not ready (either Abort or Fail reply) = ERRORLEVEL 1
(f) Invalid/wrong number of parameters = ERRORLEVEL 1

CHOICE.COM
(a) With reply list, and reply nn in list = ERRORLEVEL nn
(This reply list position = return code is main use of CHOICE)
(b) Invalid switch = ERRORLEVEL 255
(c) Invalid switch syntax = ERRORLEVEL 255
(d) Timeout default not in reply list = ERRORLEVEL 255
(e) choice /? = ERRORLEVEL 255

CSCRIPT.EXE
(a) Cannot find script file = ERRORLEVEL 1
(b) No script engine for file extension = ERRORLEVEL 1
(c) No file extension in script file = ERRORLEVEL 1
(d) Drive not ready = ERRORLEVEL 1
(There is no Abort, Retry, Fail stall)

DELTREE.EXE
(a) Required parameter missing = ERRORLEVEL 1
(b) Invalid switch = ERRORLEVEL 1
(c) deltree /? = ERRORLEVEL 1
(d) Not ready reading drive (Abort reply) = ERRORLEVEL 18
(Note: Fail reply returns ERRORLEVEL 0)

EXTRACT.EXE
(a) Invalid switch = ERRORLEVEL 1

FC.EXE
(a) Insufficient number of filespecs = ERRORLEVEL 1
(b) Too many filenames on command line = ERRORLEVEL 1
(c) Sharing Violation + Abort reply = ERRORLEVEL 5
(Note: Fail reply returns ERRORLEVEL 0)
(d) Drive not ready = ERRORLEVEL 18
(Note: Fail reply returns ERRORLEVEL 0)

FIND.EXE
(a) Target string found (=f0und) = ERRORLEVEL 0
(b) Target string missing (=m1ssing) = ERRORLEVEL 1
(c) find /? = ERRORLEVEL 1
(d) Parameter format not correct = ERRORLEVEL 2
(e) Specified file to search not found = ERRORLEVEL 2
(f) Specified file in use + Fail reply = ERRORLEVEL 2
(g) Drive not ready + Fail reply = ERRORLEVEL 2
(h) Specified file in use + Abort reply = ERRORLEVEL 5
(i) Drive not ready + Abort reply = ERRORLEVEL 5

FORMAT.COM
(a) Drive not ready = ERRORLEVEL 4
(There is no Abort, Retry, Fail stall)

FTP.EXE
(a) Brief help (use: ftp -h for Brief help) = ERRORLEVEL 2
(b) Error opening script file (file missing) = ERRORLEVEL 2
(c) Invalid switch = ERRORLEVEL 2

KEYB.COM
(a) Invalid switch = ERRORLEVEL 1
(b) Invalid keyboard code specified = ERRORLEVEL 1
(c) keyb /? = ERRORLEVEL 1

MEM.EXE
(a) Invalid switch = ERRORLEVEL 1

MODE.COM
(a) Invalid parameter = ERRORLEVEL 1
(b) Invalid switch = ERRORLEVEL 1

MORE.COM
(a) Invalid switch (MORE doesn't accept switches) = ERRORLEVEL 1
(b) Drive not ready (Abort reply) = ERRORLELEL 5
(Note: Fail reply returns ERRORLEVEL 0)

MOVE.EXE
(a) Required parameter missing = ERRORLEVEL 1
(b) Unable to create destination = ERRORLEVEL 1
(c) Unable to open source = ERRORLEVEL 1
(you see this when trying to MOVE a folder from one drive
to another. You need to use XCOPY /S followed by DELTREE,
since MOVE won't handle folder moves across drives)
(d) Sharing violation + Fail reply = ERRORLEVEL 1
(Note: file is nevertheless COPIED, not moved, in this case)
(e) Sharing violation + Abort reply = ERRORLEVEL 5
(Note: file is nevertheless COPIED, not moved, in this case)
(f) Drive not ready (Abort reply) = ERRORLEVEL 18
(Note: Fail reply - unusually - returns ERRORLEVEL 1)

PING.EXE
(a) Unknown host = ERRORLEVEL 1
(usually=name not found on DomainNameServer)
(b) Brief help (with no parameter) = ERRORLEVEL 1
Note: for PING Brief help with /? switch, ERRORLEVEL is 0
(c) Invalid switch = ERRORLEVEL 1
(and displays the Brief help as well)
(d) Interrupted with = ERRORLEVEL 255

SORT.EXE
(a) Invalid switch = ERRORLEVEL 1
(b) Drive not ready (Abort reply) = ERRORLEVEL 15
(Note: Fail reply returns ERRORLEVEL 0)

START.EXE
(a) start /? (real mode) = ERRORLEVEL 1
(b) start /? (GUI) = ERRORLEVEL 255
(c) Can't find file specified for START = ERRORLEVEL 255
(d) No file association for specified file = ERRORLEVEL 255
(e) Drive not ready = ERRORLEVEL 255
(There is no Abort, Retry, Fail stall)

SUBST.EXE
(a) Invalid parameter = ERRORLEVEL 1
(b) Invalid switch = ERRORLEVEL 1
(c) Path not found = ERRORLEVEL 1
(d) Drive not ready (Abort reply) = ERRORLEVEL 21
(Note: Fail reply - unusually - returns ERRORLEVEL 1)

TRACERT.EXE
(a) Unable to resolve target system name = ERRORLEVEL 1
(usually=name not found on DomainNameServer)
(b) Invalid switch = ERRORLEVEL 1
(c) Brief help (no parameter) = ERRORLEVEL 1
(d) Interrupted with = ERRORLEVEL 255
Note: for TRACERT Brief help, type command without parameters

XCOPY.EXE
(a) File not found = ERRORLEVEL 1
(b) Invalid date in /d switch = ERRORLEVEL 4
(c) Invalid number of parameters = ERRORLEVEL 4
(d) Invalid parameter = ERRORLEVEL 4
(e) Device not ready = ERRORLEVEL 4
(f) Unable to create directory = ERRORLEVEL 4
(g) System can't find file = ERRORLEVEL 5
(this occurs when device such as NUL is used as Source file)

Full details of how to test, and act upon, ERRORLEVEL values that
are returned by Batch commands are in our free, interactive Batch
File Course. You can see a detailed Syllabus and Lesson Index at:

http://www.allenware.com/icsw/icswidx.htm

William and Linda Allen
Creative Technical Writing http://www.allenware.com/
(c) Copyright Allen & Company 2005 - all rights reserved (c)

※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
Floor 2 Posted 2005-07-17 22:45 ·  中国 广东 广州 白云区 电信
金牌会员
★★★★
D◎$ Fαп
Credits 4,562
Posts 1,883
Joined 2004-01-19 00:00
22-year member
UID 15812
Gender Male
From 广东广州
Status Offline
Good, very good! A book of mine on MSDOS 6.22 also lists some command Errorlevel values, but most of the commands are not useful today, like BACKUP, DEFRAG, DISKCOMP, DISKCOPY, RESTORE, SETVER, etc. And the Errorlevel values of common commands (such as Find, Format, Xcopy, etc.) are not as rich and detailed as those provided by the owner of the post.
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
Forum Jump: