Wykonywanie wielu poleceń ze skryptu cmd systemu Windows

Próbuję napisać skrypt cmd systemu Windows, aby wykonać kilka zadań w serii. Jednak zawsze zatrzymuje się po pierwszym poleceniu w skrypcie.

Komenda, po której zatrzymuje się jest kompilacją Mavena (Nie wiem, czy jest to istotne).

Jak mam to zrobić i uruchomić każde zadanie po kolei?

Instalacja jakiegokolwiek oprogramowania lub Konfiguracja rejestru itp jest całkowicie wykluczona - musi działać na waniliowej instalacji Windows XP niestety.

Idealnie jak skrypt do przerwania, jeśli któreś z poleceń nie powiodło się, ale to "miło mieć", nie jest konieczne.

Dzięki.
Author: Darren Greaves, 2008-10-13

8 answers

Kiedy zadzwonisz do innego .plik bat, myślę, że trzeba "zadzwonić" przed wywołaniem:

call otherCommand.bat
 134
Author: Lou Franco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-13 15:53:05

Możesz użyć symbolu & & pomiędzy poleceniami, aby wykonać drugie polecenie tylko wtedy, gdy pierwsze powiedzie się. Więcej informacji tutaj http://commandwindows.com/command1.htm

 44
Author: Steve,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-13 15:35:29

Nie wiem, dlaczego zatrzymuje się pierwsze polecenie. Jeśli możesz zrobić to równolegle, możesz spróbować czegoś takiego jak

start cmd.exe /C 1.bat      
start cmd.exe /C 2.bat
 25
Author: Gulzar Nazim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-13 15:44:42

Właśnie wykonywałem dokładnie to samo(ish) zadanie tworzenia skryptu wsadowego do uruchamiania skryptów testowych Mavena. Problem polega na tym, że wywołanie maven scrips z mvn clean install ... jest sam skrypt i tak musi być zrobione z połączenia mvn clean install.

Kod, który będzie działał

rem run a maven clean install
cd C:\rbe-ui-test-suite 
call mvn clean install
rem now run through all the test scripts
call mvn clean install -Prun-integration-tests -Dpattern=tc-login
call mvn clean install -Prun-integration-tests -Dpattern=login-1

Zwróć uwagę raczej na użycie call. Pozwoli to na użycie kolejnych skryptów Mavena w pliku wsadowym.

 23
Author: mhollander38,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-21 10:21:16

Użycie podwójnych ampersandów uruchomi drugą komendę, tylko jeśli pierwsza się powiedzie:

cd Desktop/project-directory && atom .

Gdzie as, używając tylko jednego ampersand spróbuje uruchomić oba polecenia, nawet jeśli pierwsze się nie powiedzie:

cd Desktop/project-directory & atom .
 2
Author: JSON C11,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-23 22:57:16

Jeśli pracujesz w systemie Windows, możesz użyć następującego polecenia.

Napęd:

cd "Script location"
schtasks /run /tn "TASK1"
schtasks /run /tn "TASK2"
schtasks /run /tn "TASK3"
exit
 1
Author: Pulendar Vadde,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-14 22:01:07

Nie znam bezpośredniej odpowiedzi na twoje pytanie, ale jeśli robisz wiele z tych skryptów, może warto nauczyć się bardziej potężnego języka, takiego jak perl. Dla Windows istnieją darmowe implementacje (np. activestate, cygwin). Uważam, że jest to warte początkowego wysiłku dla moich własnych zadań.

Edit:

Zgodnie z sugestią @Ferruccio, jeśli nie możesz zainstalować dodatkowego oprogramowania, rozważ vbscript i / lub javascript. Są wbudowane w host skryptowy systemu Windows.

 1
Author: Mr Fooz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-06 16:18:30

Zauważ, że nie potrzebujesz średników w plikach wsadowych. A powodem, dla którego musisz użyć połączenia jest to, że mvn sam jest plikiem wsadowym, a pliki wsadowe muszą dzwonić do siebie za pomocą połączenia, w przeciwnym razie Kontrola nie powróci do dzwoniącego.

 0
Author: Pushkar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-25 08:32:48