Dlaczego tylko pierwsza linia tego pliku wsadowego Windows jest wykonywana, ale wszystkie trzy linie są wykonywane w powłoce poleceń?
Mam plik wsadowy, który wykonuje trzy polecenia Mavena, jeden po drugim. Każde polecenie może być z powodzeniem wykonane w skrypcie-samodzielnie!. Ale kiedy dodam wszystkie trzy polecenia do tego samego pliku, tylko pierwsze z nich zostanie wykonane przed zakończeniem skryptu. Wiesz dlaczego?
mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar -Dpackaging=jar -DgeneratePom=true
Również, jeśli skopiuję wszystkie trzy polecenia i wkleję je do powłoki poleceń (cmd.exe), wykonują jeden po drugim bez problemu. Więc jest to najwyraźniej jakiś problem z plikiem wsadowym dos.
5 answers
Maven używa plików wsadowych do swoich zadań. Z dowolnym skryptem wsadowym, należy wywołać inny skrypt za pomocą call
polecenie, dzięki czemu wie, aby powrócić do skryptu po zakończeniu wywoływanego skryptu. Spróbuj przygotować call
do wszystkich poleceń.
Kolejną rzeczą, którą możesz spróbować, jest użycie start
polecenie, które powinno działać podobnie.
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
2012-11-16 16:13:48
Posiadanie call
pomaga
Jednak dzisiaj to nie jest
Oto jak rozwiązałem:
Zawartość pliku Bat (Jeśli Chcesz zatrzymać wsad gdy jeden z błędów cmds)
cmd1 && ^
cmd2 && ^
cmd3 && ^
cmd4
Zawartość pliku Bat (Jeśli Chcesz kontynuować wsad gdy jeden z błędów cmds)
cmd1 & ^
cmd2 & ^
cmd3 & ^
cmd4
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
2018-02-14 03:09:08
Aby wykonać więcej kompilacji Mavena z jednego skryptu należy użyć funkcji windows wywołać w następujący sposób:
call mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar -Dpackaging=jar -DgeneratePom=true
call mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar -Dpackaging=jar -DgeneratePom=true
call mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar -Dpackaging=jar -DgeneratePom=true
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
2016-09-28 13:48:54
Powinno być tak, że konkretne polecenie mvn
exec
s i nie zwraca, przez co nie wykonuje pozostałych poleceń.
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
2010-10-27 19:12:45
Spróbuj zapisać następujący plik wsadowy i wykonać go:
Echo one
cmd
Echo two
cmd
Echo three
cmd
Tylko dwie pierwsze linie są wykonywane. Ale jeśli wpiszesz "exit" w wierszu polecenia, następne dwie linie są przetwarzane. To pocisk ładujący inny.
Aby mieć pewność, że to nie jest to, co dzieje się w Twoim skrypcie, po prostu wpisz "exit" po zakończeniu pierwszego polecenia.
HTH!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
2010-10-27 19:23:24