Я пытаюсь написать сценарий Windows cmd для выполнения нескольких задач в серии. Однако он всегда останавливается после первой команды в сценарии.
Команда, после которой он останавливается, является сборкой maven (не уверен, что это актуально).
Как мне заставить его выполнять и выполнять каждую задачу по очереди, пожалуйста?
Установка любого программного обеспечения или настройка реестра и т. Д. Полностью исключена - я боюсь, что она должна работать при установке Windows XP.
В идеале я бы хотел, чтобы скрипт прерывался, если какая-либо из команд не удалась, но это "приятно иметь", но не обязательно.
Спасибо.
windows
batch-file
scripting
cmd
Даррен Гривз
источник
источник
mvn
это файл .bat сам по себе, поэтому вам нужно использоватьcall
его как вcall mvn install
; обычно вам не нужно создавать дополнительный cmd-файл.npm
обновлениями иprotractor
тестами. Я не думаю , что этот ответ применяется ко мне , пока я не понял ,npm
иprotractor
это.cmd
файлы на Windows.Вы можете использовать символ && между командами, чтобы выполнить вторую команду, только если первая выполнена успешно. Более подробная информация здесь http://commandwindows.com/command1.htm
источник
start /B /WAIT calc
Не уверен, почему первая команда останавливается. Если вы можете сделать это параллельно, вы можете попробовать что-то вроде
источник
/K
вместо,/C
если вы хотите, чтобы оболочка оставалась открытой после выполнения вашей команды.cmd.exe
иstart
, простоstart x.bat1
сделаю.Я только что выполнил ту же самую задачу (ish) по созданию пакетного скрипта для запуска тестовых скриптов maven. Проблема в том, что вызов maven scrips с помощью mvn clean install ... сам по себе является сценарием, поэтому его необходимо выполнить с помощью вызова mvn clean install.
Код, который будет работать
Обратите внимание на использование вызова. Это позволит использовать последовательные сценарии maven в командном файле.
источник
Использование двойных амперсандов запускает вторую команду, только если первая удалась:
Где как, использование только одного амперсанда попытается выполнить обе команды, даже если первая не удалась:
источник
Если вы работаете в Windows, вы можете использовать следующую команду.
Водить машину:
источник
Я не знаю прямого ответа на ваш вопрос, но если вы делаете много этих сценариев, возможно, стоит изучить более мощный язык, такой как perl. Для Windows существуют бесплатные реализации (например, activestate, cygwin). Я нашел, что стоит начальных усилий для моих собственных задач.
Редактировать:
По предложению @Ferruccio, если вы не можете установить дополнительное программное обеспечение, рассмотрите vbscript и / или javascript. Они встроены в хост скриптов Windows.
источник
Обратите внимание, что вам не нужны точки с запятой в пакетных файлах. А причина, по которой вам нужно использовать call, заключается в том, что mvn сам по себе является пакетным файлом, а пакетные файлы должны вызывать друг друга с помощью call, иначе управление не возвращается вызывающей стороне.
источник