2010-07-21 58 views
5

我有一個批處理文件,可以做幾件事情。如果其中一個失敗了,我想退出整個程序。例如:如何在出錯時退出批處理程序?

@echo off 
type foo.txt 2>> error.txt >> success.txt 
mkdir bob 

如果沒有找到該文件foo.txt的話,我想追加到error.txt文件標準錯誤消息,否則foo.txt的內容附加到success.txt。基本上,如果類型命令返回一個stderr,那麼我希望批處理文件退出,而不是創建一個新的目錄。如何判斷是否發生錯誤並決定是否需要繼續執行下一個命令?

+0

我添加的代碼 IF NOT ERRORLEVEL 0 EXIT/B echo%errorlevel% 在mkdir bob命令之前,但不管ERRORLEVEL的值(即0或1)目錄仍然被創建。所以基本上,無論type命令是否查找文件,ERRORLEVEL都將設置爲不同的值,但程序不會退出。思考? – Notorious2tall 2010-07-21 21:07:33

回答

10

使用ERRORLEVEL檢查前一個命令的退出代碼:

if ERRORLEVEL 1 exit /b 

編輯:文件說,「如果最後命令的退出代碼等於或大於x條件爲真」(你可以用if /?來檢查)。除此之外,您還可以檢查文件是否與

if exist foo.txt echo yada yada 

存在執行multple命令,如果條件爲真:

if ERRORLEVEL 1 (echo error in previous command & exit /b) 

if ERRORLEVEL 1 (
    echo error in previous command 
    exit /b 
)