2015-09-07 4 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.txt.

Пожалуйста, помогите мне в создании стабильной и работает один ...

Заранее спасибо

ответ

0

Обнаружение результате del command is not so easy раствора The dbenham формируют по ссылке выше:

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

DEL возвращает Равен 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 
) 

 Смежные вопросы

  • Нет связанных вопросов^_^