Riga di comando: file batch che chiama un altro file batch


13

Ho un file batch che chiama un altro file batch che esiste nella directory PATH (fondamentalmente chiamando un eseguibile con switch aggiuntivi.)

: bar.bat:
foo.bat file1.txt
foo.bat file2.txt
etc.

In foo.bat:

foo.exe -t -s %1

bar.bat esegue il primo comando ma esce immidamente (vale a dire lavorando solo su file1.txt ).

Come posso fare questo file batch per invocare l'altro file batch più di una volta?

Risposte:


14

Usa la parola chiave CALL:

call foo.bat file1.txt
call foo.bat file2.txt

1
<copiato dalla risposta di Duncan Smart, solo per tenerlo insieme> Oltre alla risposta di @ splattne, utilizzare exit / b nel file batch CHIAMATO se è necessario tornare in anticipo.
Brad Bruce,

1
Puoi anche usare goto :eofper tornare presto. exit /bdi solito è necessario solo se è necessario il codice di ritorno.
Joey,

Io non lo faccio perché, ma sto lottando per ottenere questo al lavoro, ho provato entrambi exit /be goto: eof. Va bene aggiungere l'output del pipistrello CHIAMATO? call foo.bat > myfile
SSH Questo

4

Oltre alla risposta di @ splattne, utilizzare exit /bnel CALLfile batch ed se è necessario tornare in anticipo.


2

Un'altra opzione (per la compatibilità con DOS precedente alla versione 3.3 :-)) è quella di chiamare il processo di comando con l'opzione figlio (/ c) e il nome dell'altro file batch da elaborare. Questo farà anche una chiamata invece di una catena e funzionerà anche su macchine veramente antiche (nel caso in cui qualcuno lo attraversi e si preoccupi). :-)


0

@echo off

echo WbLegalReport.cmd

io:

cd I: \ CFS \ Batch \ jarDir

echo% CD%

WbLegalReport.cmd

echo% CD%

echo WatchResrAddDeleted.cmd

echo% CD%

WatchRestrAddDeleted.cmd

echo% CD%

Quello che sto cercando di fare qui è chiamare questi due file batch in una sequenza.

Impossibile farlo.

aiuto per favore.

In realtà sta fallendo nello script figlio, poiché il controllo non ritorna allo script principale


0

Sanket, non chiamare direttamente il file batch. Utilizzare il comando "CHIAMA". Vedi l'esempio di splattne .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.