2013-05-30 9 views
8

Poniżej znajduje się blok kodu skryptu bat na której pracuję nad:polecenia są ignorowane po komendzie mrówek w pliku wsadowym

ECHO off 

IF NOT EXIST "%ANT_HOME%" ( 

    SET ANT_HOME=%~dp0%build\apache-ant-1.8.2 
    SET ANT_BIN=%~dp0%build\apache-ant-1.8.2\bin 

    SET PATH | FIND "%ANT_HOME%;%ANT_BIN%" 
) 
cd "build\Run" 
ant -q 

cd ../.. 
echo "Program Terminated!" 
exit 

Teraz mój plik build.xml jest wewnątrz tego folderu build \ Run tak, że ja Najpierw przejdź do kompilacji/Run przed uruchomieniem polecenia ant -q (UWAGA: Nie chcę zmieniać tej metody nawigacji).

Komenda mrówka -q chwila jest wykonywane następujące konsekwencje:

  1. Ustaw zmienne środowiskowe jako warunek.
  2. Zmień katalog na kompilację \ Uruchom.
  3. Ponieważ mój plik build.xml znajduje się w katalogu uruchamiania, polecenie ant -q działa poprawnie.
  4. Wykonano poprawnie polecenie AN nie zakończone.
  5. Teraz moja aktualna ścieżka zostanie zbudowana \ Run! poprawne < = Tutaj nie chcę to po mrówka jest zakończona, a nie chcę wychodzić z build \ Run Dlatego używane cd../..

ale problemem jest to, że nie jestem w stanie wykonać polecenia po mrówce -q. Zdarza się, że kontrola programu przechodzi od BATCH => ANT.

Czy istnieje sposób wykonywania mojego polecenia po poleceniu ant z samego skryptu?

+1

uwaga, że ​​'USTAW ŚCIEŻKĘ | ZNAJDŹ "! ANT_HOME!;! ANT_BIN!" 'Nie ustawia Twojej ścieżki - informuje tylko, czy twoje dodatki są dostępne ... – Stephan

Odpowiedz

17

Może się okazać, że uruchamiana ant jest plikiem wsadowym, w którym to przypadku po prostu się do niego połączy (bez powrotu).

Powinieneś spróbować zamiast:

call ant -q 

Wywołanie plik wsadowy (w przeciwieństwie do łączenia) będzie poprawnie powrócić do punktu, po którym nazwał.

+0

Naprawiono również mój problem! Dzięki! –

+0

Niesamowity sos! Próbowałem dowiedzieć się, co jest nie tak ze scenariuszem. Jesteś moim wybawicielem T^T –

+0

idealne rozwiązanie! pracował dla mnie! wielkie dzięki! –

Powiązane problemy