Jak wywołać inny skrypt wsadowy z poziomu skryptu wsadowego?Jak uruchomić skrypt wsadowy z poziomu skryptu wsadowego?
Chcę, aby to wykonać w oświadczeniu if
.
Jak wywołać inny skrypt wsadowy z poziomu skryptu wsadowego?Jak uruchomić skrypt wsadowy z poziomu skryptu wsadowego?
Chcę, aby to wykonać w oświadczeniu if
.
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.
+ jeden do wyszczególnienia na CALL/START –
Można użyć
call script.bat
lub po prostu
script.bat
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. –
należy użyć CALL
CALL batch.bat
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"
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!
zrobił u próbowali samo działa zdalnie .......... co się stało, że Jeśli tak? – pkm