Próbuję napisać skrypt cmd systemu Windows, aby wykonać szereg zadań. Jednak zawsze zatrzymuje się po pierwszym poleceniu w skrypcie.
Polecenie, po którym się zatrzymuje, to kompilacja mavena (nie jestem pewien, czy jest to istotne).
Jak mam to zrobić i uruchomić po kolei każde zadanie?
Instalowanie jakiegokolwiek oprogramowania, konfigurowanie rejestru itp. Jest całkowicie wykluczone - obawiam się, że musi działać na zwykłej instalacji systemu Windows XP.
Idealnie chciałbym, aby skrypt przerywał działanie, jeśli którekolwiek z poleceń zawiodło, ale jest to „przyjemne mieć”, a nie niezbędne.
Dzięki.
windows
batch-file
scripting
cmd
Darren Greaves
źródło
źródło
mvn
jest plikiem .bat, dlatego należy go używaćcall
tak, jak wcall mvn install
; normalnie nie ma potrzeby tworzenia dodatkowego pliku cmd.npm
aktualizacjami iprotractor
testami. Nie sądziłem, że to odpowiedź zastosowany do mnie, aż zdałem sobie sprawę,npm
iprotractor
są.cmd
pliki w systemie Windows.Możesz użyć symbolu && między poleceniami, aby wykonać drugie polecenie tylko wtedy, gdy pierwsze powiedzie się. Więcej informacji tutaj http://commandwindows.com/command1.htm
źródło
start /B /WAIT calc
Nie wiem, dlaczego pierwsze polecenie się zatrzymuje. Jeśli możesz to zrobić równolegle, możesz spróbować czegoś takiego
źródło
/K
zamiast,/C
jeśli chcesz, aby powłoka pozostała otwarta po wykonaniu polecenia.cmd.exe
istart
, po prostustart x.bat1
zrobi.Właśnie wykonałem dokładnie to samo (ish) zadanie tworzenia skryptu wsadowego do uruchamiania skryptów testowych maven. Problem polega na tym, że wywołanie maven scrips z mvn clean install ... samo w sobie jest skryptem i dlatego należy je wykonać za pomocą wywołania mvn clean install.
Kod, który zadziała
Zwróć uwagę raczej na użycie połączenia. Pozwoli to na użycie kolejnych skryptów Maven w pliku wsadowym.
źródło
Użycie podwójnych ampersandów uruchomi drugie polecenie, tylko jeśli pierwsze się powiedzie:
Jeśli tak, użycie tylko jednego znaku ampersand spowoduje próbę uruchomienia obu poleceń, nawet jeśli pierwsze się nie powiedzie:
źródło
Jeśli pracujesz w systemie Windows, możesz użyć następującego polecenia.
Napęd:
źródło
Nie znam bezpośredniej odpowiedzi na twoje pytanie, ale jeśli robisz wiele z tych skryptów, może warto nauczyć się potężniejszego języka, takiego jak perl. Istnieją bezpłatne implementacje dla systemu Windows (np. Activestate, cygwin). Uważam, że jest to warte początkowego wysiłku dla moich własnych zadań.
Edytować:
Zgodnie z sugestią @Ferruccio, jeśli nie możesz zainstalować dodatkowego oprogramowania, rozważ vbscript i / lub javascript. Są wbudowane w hosta skryptów systemu Windows.
źródło
Pamiętaj, że nie potrzebujesz średników w plikach wsadowych. Powodem, dla którego musisz użyć wywołania, jest to, że sam mvn jest plikiem wsadowym, a pliki wsadowe muszą wywoływać się nawzajem za pomocą wywołania, w przeciwnym razie sterowanie nie wróci do dzwoniącego.
źródło