2011-01-25 15 views

Odpowiedz

153

Używaj CALL jak w

CALL nameOfOtherFile.bat 

Spowoduje to zablokowanie (wstrzymanie) wykonania bieżącego pliku wsadowego i będzie czekać, aż zakończy się edycja CALL.

Jeśli nie chcesz, aby blokował, użyj zamiast tego START.

Uzyskaj szczegółowe informacje, używając CALL /? lub START /? w wierszu polecenia cmd.

+1

+ jeden do wyszczególnienia na CALL/START –

1

Można użyć

call script.bat 

lub po prostu

script.bat 
+1

Jeśli bezpośrednio wywołasz inny skrypt w twoim skrypcie, na wypadek, gdyby jakakolwiek komenda w wywołanym skrypcie zwróciła wartość niezerową (błąd), skrypt wywołujący zatrzyma się również do wykonania, gdzie używając 'call', będzie kontynuował jego wykonywanie nawet z błędem w wywołanym skrypcie. –

4

należy użyć CALL

CALL batch.bat 
0

Oto przykład:

Masz a.bat:

@echo off 
if exist b.bat goto RUNB 
goto END 
:RUNB 
b.bat 
:END 

i b.bat nazywa warunkowo z a.bat:

@echo off 
echo "This is b.bat" 
18

Wystarczy powołać skryptu wsadowego według nazwy, tak jakbyś był uruchomiony z linii poleceń.

Więc załóżmy, że masz plik bar.bat który mówi echo This is bar.bat! i chcesz zadzwonić z pliku foo.bat, można napisać to w foo.bat:

if "%1"=="blah" bar 

Uruchom foo blah z wiersza poleceń, a ty” ll zobaczyć:

C:\>foo blah 

C:\>if "blah" == "blah" bar 

C:\>echo This is bar.bat! 
This is bar.bat! 

Ale uwaga: Po wywołaniu skryptu wsadowego z innego skryptu wsadowego, oryginalny SCRi wsadowego pt przestanie działać. Jeśli chcesz uruchomić wtórny skrypt wsadowy, a następnie powrócić do poprzedniego skryptu wsadowego, musisz użyć polecenia call. Na przykład:

if "%1"=="blah" call bar 
echo That's all for foo.bat! 

Jeśli prowadzisz foo blah na ten temat, można zobaczyć:

C:\>foo blah 

C:\>if "blah" == "blah" call bar 

C:\>echo This is bar.bat! 
This is bar.bat! 

C:\>echo That's all for foo.bat! 
That's all for foo.bat! 
Powiązane problemy