2013-05-30 23 views
8

seguito è riportato il blocco di codice di script bat su cui sto lavorando:comando vengono ignorati dopo il comando formica in file batch

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 

Ora, il mio file build.xml è all'interno di questa cartella di build \ Run in modo che io sto prima navigando per costruire/Esegui prima di eseguire il comando ant -q (NOTA: non voglio cambiare questo metodo di navigazione).

Il comando momento in formica q viene eseguito seguendo le cose accadono:

  1. Impostare le variabili di ambiente come la condizione.
  2. Cambia directory per compilare \ Esegui.
  3. Poiché il mio build.xml è all'interno della directory Esegui, il comando ant -q viene eseguito correttamente.
  4. Ant eseguito correttamente e non viene terminato lo script ant.
  5. Ora il mio percorso corrente sarà compilato \ Esegui! corretta < = Qui non voglio questo dopo formica è terminato, invece voglio venire fuori da costruire \ Run Ecco perché ho usato cd../..

Ma il problema è che non sono in grado di eseguire i comandi dopo formica -q. Questo accade essere il controllo del programma va da BATCH => ANT.

C'è un modo per eseguire il mio comando dopo il comando ant da script bat stesso?

+1

nota, che 'SET PERCORSO | TROVA "! ANT_HOME!;! ANT_BIN!" 'Non SET il tuo percorso - ti dice solo se ci sono le tue aggiunte ... – Stephan

risposta

17

È possibile che lo ant venga eseguito sia un file batch stesso, nel qual caso viene semplicemente incatenato ad esso (nessun reso).

Si dovrebbe provare questo invece:

call ant -q 

Chiamata di un file batch (al contrario di concatenamento) sarà correttamente ritornare al punto dopo il quale si ha chiamato.

+0

Risolto il problema! Grazie! –

+0

Salsa eccezionale! Ho faticato a cercare di capire cosa non va nella sceneggiatura ... Sei la mia salvatrice T^T –

+0

soluzione perfetta! ha funzionato per me! grazie mille! –

Problemi correlati