Jak uruchomić wiele plików wsadowych z jednym głównym plikiem wsadowym

5

Mam trzy pliki nietoperzy, które chciałbym uruchomić w trzech różnych katalogach:

katalog / bat1 / bat1.bat

katalog / bat2 / bat2.bat

katalog / bat3 / bat3.bat

Chciałbym użyć jednego mistrza .bat, aby uruchomić wszystkie inne nietoperze w swoich katalogach. Nie mogę używać połączenia, ponieważ otrzymuję błędy, ponieważ istnieją zależności dla każdego innego nietoperza w katalogu. Próbowałem użyć start, ale to też nie działa, po prostu wywołuje wiersz polecenia z folderem.

Wiem, że brzmi to trochę myląco, ale wszystko, co chcę zrobić, to użyć jednego pliku .bat, aby uruchomić wiele plików .bat niezależnie od siebie w swoich katalogach.

JCTechie
źródło
Próbować cd po kolei do każdego katalogu, a następnie uruchom plik wsadowy ...
DavidPostill
Jak wyglądałby ten kod? Czy byłby to cd „katalog / bat1 /” start bat1.bat?
JCTechie
1
cd c:\directory\bat1 && bat1.bat następnie cd c:\directory\bat2 && bat2.bat itp
DavidPostill
To nie zadziałało, tylko uruchomił pierwszy plik wsadowy.
JCTechie

Odpowiedzi:

6

Znalazłem rozwiązanie! Użyłem tego kodu, aby nietoperz mógł otworzyć trzy różne pliki nietoperza niezależnie:

cd "\directory\bat1\"
start bat1.bat
cd "\directory\bat2\"
start bat2.bat
cd "\directory\bat3\"
start bat3.bat
JCTechie
źródło
1
ale napisałeś w swoim pytaniu „Próbowałem użyć startu, ale to też nie działa, po prostu wywołuje wiersz polecenia z folderem”. & lt; - a następnie odpowiedziałeś za pomocą startu. Więc co to było?
barlop
Przepraszam za zamieszanie, którego nie napisałem poprawnie. Z jakiegoś powodu, kiedy po prostu uciekłem. start katalog bat1 bat1.bat otworzył właśnie pusty wiersz polecenia wpisany do katalogu bat1 katalog.
JCTechie
Próbowałem tego, ale po wywołaniu całego pliku wsadowego zaczęła wyskakiwać niekończąca się pętla otwierania CMD
Kim Carlo
6

Jeśli użyjesz początek , inne pliki nietoperzy utworzą nowy proces dla każdego nietoperza i uruchomią je wszystkie jednocześnie.

cd "\directory\bat1\"
start bat1.bat
cd "\directory\bat2\"
start bat2.bat
cd "\directory\bat3\"
start bat3.bat

Ale jeśli chcesz uruchomić następny po zakończeniu ostatniego, możesz użyć połączenie

cd "\directory\bat1\"
call bat1.bat
cd "\directory\bat2\"
call bat2.bat
cd "\directory\bat3\"
call bat3.bat

nie zapomnij o pierwszym na początku Płyta CD , w przeciwnym razie spróbuje zmienić katalog na podkatalog bieżącego katalogu roboczego.

Krul
źródło
1

Zmagałem się z tym problemem i żadne z tych rozwiązań ani inne nie działały. W „głównym” pliku wsadowym chciałem uzyskać dostęp do podfolderów i kolejno uruchamiać pliki wsadowe w tych folderach. Tak właśnie skończyłem,

cd Folder1
call batch_cmd.bat
cd ..
cd Folder2
call batch_cmd.bat
cd ..

itd. itd. itd.

Ten format działał dobrze dla mnie, ponieważ używałem javascript / nodejs do generowania tych poleceń i plików wsadowych.

Jeśli chcesz zrobić coś w całości w plikach wsadowych, to zamiast tego radzę ci wyszukać skrypty powershell.

tehduder9
źródło