У меня есть файл .bat в Windows, который делает три вещи
cmd1 arg1 arg2
cmd2 arg3
cmd3 arg4 arg5 arg6
Иногда cmd1 может выйти из строя, и это нормально, я хотел бы продолжить и выполнить cmd2 и cmd3. Но моя летучая мышь останавливается на cmd1. Как я могу избежать этого?
Обновление для ясности - это не другие файлы .bat, это команды exe. Надеюсь, мне не нужно создавать дерево файлов .bat только для этого.
windows
command-line
batch-file
ConfusedNoob
источник
источник
cmd /C
.Ответы:
Другой вариант - использовать амперстенд (
&
)cmd1 & cmd2 & cmd3
Если вы используете double, он продолжается только в случае успешного завершения предыдущей команды (
%ERRORLEVEL%==0
)cmd1 && cmd2 && cmd3
Если вы используете double pipe (
||
), следующая команда запускается, только если предыдущая завершается с кодом ошибки (%ERRORLEVEL% NEQ 0
)cmd1 || cmd2 || cmd3
источник
CHKDSK
команда с аргументами, которая работает. Я печатаюcheck D: & check E: & check F:
, и это работает. Аргументы, которые содержит файл BAT, включают/perf /f /r /b /scan
переключателиПредположим, что cmds - это другие .bat-файлы, которые складывают команды следующим образом:
источник
Это сработало для меня:
Используется
cmd.exe
для выполнения команды в новом экземпляре интерпретатора команд Windows, поэтому неудачная команда не прерывает пакетный сценарий./c
Флаг указывает интерпретатору прекратить , как только команда завершается выполнение.cmd2
выполняется, даже если первая команда не выполнена. Смотритеcmd /?
из командной строки Windows для получения дополнительной информации.источник