if errorlevel n (語句段)
是
dos命令行中用來處理錯誤的語句,大部分命令或程序執(zhí)行之后都會返回一個變量errorlevel
這個變量是命令行內(nèi)置的變量,代表錯誤等級,它的正規(guī)運用是傳遞給dos環(huán)境命令出錯的嚴重程度,errorlevel越高代表錯誤越嚴重,0代表沒有錯誤
if errorlevel n成立的條件是當前的errorlevel,也就是上一條命令返回的errorlevel值大于等于n
比如if errorlevel 1 echo 出錯
就是在錯誤等級大于等于1的時候顯示"出錯"
一般的錯誤處理都是由高到低的,比如
if errorlevel 3 goto:fatalerror
if errorlevel 2 goto:error
if errorlevel 1 goto:warning
建立test4.bat,內(nèi)容如下:
@echo off
xcopy c:\autoexec.bat d:\
if errorlevel 1 echo 文件拷貝失敗
if errorlevel 0 echo 成功拷貝文件
然后執(zhí)行文件:
c:\>test4
如果文件拷貝成功,屏幕就會顯示“成功拷貝文件”,否則就會顯示“文件拷貝失敗”。
if errorlevel 是用來測試它的上一個dos命令的返回值的,注意只是上一個命令的返回值,而且返回值必須依照從大到小次序順序判斷。
因此下面的批處理文件是錯誤的:
@echo off
xcopy c:\autoexec.bat d:\
if errorlevel 0 echo 成功拷貝文件
if errorlevel 1 echo 未找到拷貝文件
if errorlevel 2 echo 用戶通過ctrl-c中止拷貝操作
if errorlevel 3 echo 預置錯誤阻止文件拷貝操作
if errorlevel 4 echo 拷貝過程中寫盤錯誤
無論拷貝是否成功,后面的:
未找到拷貝文件
用戶通過ctrl-c中止拷貝操作
預置錯誤阻止文件拷貝操作
拷貝過程中寫盤錯誤
都將顯示出來。
以下就是幾個常用命令的返回值及其代表的意義:
backup
0 備份成功
1 未找到備份文件
2 文件共享沖突阻止備份完成
3 用戶用ctrl-c中止備份
4 由于致命的錯誤使備份操作中止
diskcomp
0 盤比較相同
1 盤比較不同
2 用戶通過ctrl-c中止比較操作
3 由于致命的錯誤使比較操作中止
4 預置錯誤中止比較
diskcopy
0 盤拷貝操作成功
1 非致命盤讀/寫錯
2 用戶通過ctrl-c結束拷貝操作
3 因致命的處理錯誤使盤拷貝中止
4 預置錯誤阻止拷貝操作
format
0 格式化成功
3 用戶通過ctrl-c中止格式化處理
4 因致命的處理錯誤使格式化中止
5 在提示“proceed with format(y/n)?”下用戶鍵入n結束
xcopy
0 成功拷貝文件
1 未找到拷貝文件
2 用戶通過ctrl-c中止拷貝操作
4 預置錯誤阻止文件拷貝操作
5 拷貝過程中寫盤錯誤