2015-09-07 78 views
1

所以基本上我試圖做一個批處理文件,執行一個命令,併成功執行該命令退出。但是如果它執行第一個命令失敗,它應該運行第二個(備份)命令,然後退出。批處理文件執行一個命令,如果其他使用IF,ELSE和ERRORLEVEL失敗

例如,我想要一個.bat文件,在啓動時,刪除某個目錄中的文件,然後退出。但是如果在嘗試這樣做時出錯,它應該嘗試刪除不同目錄中的另一個文件,然後退出。

讓我們說,我創建了一個批處理文件,從當前目錄中刪除「a.txt」並退出。但是如果失敗了,它應該嘗試刪除「b.txt」並退出。但是它應該刪除b.txt,如果它沒有刪除a.txt。

我想利用IF,ELSE和%ERRORLEVEL%這樣做。

這裏,我試圖用現在做代碼:

@echo off 
del a.txt 
IF %ERRORLEVEL% NEQ 0 (
del b.txt 
) else (
ECHO victory 
) 

在上面的代碼我使用的錯誤級別代碼0,如果其不等於0,執行B計劃(這是成功執行該命令時返回的)。 現在它不會刪除b.txt。

請幫我在創造一個穩定和工作的一個......提前

感謝

回答

0

del command is not so easy 結果的檢測的dbenham的溶液形成上述的鏈接:

3>&2 2>&1 1>&3 del "a.txt"|findstr . && (
echo DEL failed 
del "b.txt" 
color 
)||(
echo DEL succeeded 
) 
0

DEL回報不存在的文件ERRORLEVEL 0,所以首先檢查文件是否存在:

if exist a.txt (del a.txt & echo victory) else if exist b.txt del b.txt 
0

del如果無法刪除文件,則不會返回錯誤級別。

在Win 8.x中32位在這裏測試

0
@echo off 
del a.txt 
IF EXIST a.txt (
del b.txt 
) else (
ECHO victory 
) 
相關問題