2011-01-11 12 views
5

Vorrei utilizzare un file batch per chiamare un file batch diverso che si trova in una sottodirectory. Per esempio, se il mio file sguardo sistema come segue:Utilizzo del prompt dei comandi per chiamare un file batch in una sottodirectory

MainFolder
        main.bat
        FirstDirectory
        SecondDirectory
                foo.bat

Poi main.bat potrebbe essere simile a questa:

echo on 
REM This lines tells the user what this bat file is doing 
call ant 
call \SecondDirectory\foo.bat 

Sto cercando una soluzione di una riga che credo non esiste. Purtroppo non sempre voglio farlo con un file batch e voglio farlo direttamente dalla riga di comando.

+3

Se si rimuove la barra rovesciata iniziale, dovrebbe funzionare: 'call SecondDirectory \ foo.bat' – Blorgbeard

+0

Non sono sicuro di aver compreso il problema, il file batch principale che si sta elencando chiama un altro file batch in una sottodirectory (sebbene il \ all'inizio impone di essere fuori dalla directory principale). Qual è il vero problema? Se vuoi semplicemente combinare le ultime due linee in una, puoi usare i && e || operatori che eseguiranno il comando dopo && se il primo comando ha esito positivo, mentre || eseguirà il comando dopo di esso solo se il comando precedente non riesce. –

risposta

11

È possibile chiamare un file batch da un altro file batch utilizzando il comando call. Come afferma @Blorgbeard, i problemi sono il backslash principale \. La sua rimozione indica che SecondDirectory è relativo alla directory di lavoro corrente.

call SecondDirectory\foo.bat 

Un avvertimento: il comando call inserisce essenzialmente chiamato codice in fase di esecuzione. Fare attenzione a evitare la variabile name collisions.

+5

Anche la chiamata ". \ Folder \ file.bat" funzionerà (.è la directory corrente e i percorsi di quotazione sono di solito una buona idea) – Anders

+0

questa è la risposta alla domanda che ho posto. Sfortunatamente, non era la soluzione al problema che stavo affrontando ma mi ha portato a capire il problema. Quindi, grazie, due volte. – KevinO

Problemi correlati