Piszę plik wsadowy, w którym wywołuję EXE do wykonania. Teraz instrukcje po wywołaniu pliku EXE nie powinny być wykonywane, dopóki EXE nie zakończy jego wykonywania. Jak mogę to zrobić w pliku wsadowym (w systemie Windows)?Jak uzyskać plik wsadowy systemu Windows do wstrzymania podczas wykonywania pliku wykonywalnego?
Odpowiedz
Można użyć
PAUSE
skryptów partii, ale nie rozumiem Twoje pytanie.
'Pauza' wais do naciśnięcia klawisza. To nie zadziała w przypadku skryptu automatycznego, ponieważ nie ma tam użytkownika. James "chce zautomatyzowanego skryptu uruchomić jeden program, poczekać na zakończenie i wyjście, a następnie uruchomić drugi program. –
Instrukcje w pliku wsadowym są wykonywane sekwencyjnie. Jeśli Twój plik wsadowy wygląda następująco:
first.exe
next.exe
Następna jest wykonywana, jeśli pierwsza jest zakończona.
Wypróbuj to za pomocą programu explorer.exe, a zobaczysz, że powróci po uruchomieniu programu, a nie został zakończony. – paxdiablo
@Pax: zależy to od zakresu pytania. Ogólnie rzecz biorąc, w pliku wsadowym zwykle umieszczane są tylko narzędzia wiersza polecenia, a nie narzędzia GUI. – PhiLho
Zwykle, ale nie zawsze - Mam plik wsadowy uruchamiania w moim wirtualnym pudełku od pracy z domu, który uruchamia graficznego klienta VPN (następnie pocztę, narzędzie błędu itp.). Na szczęście ma przełącznik wiersza poleceń, który powoduje, że nie powraca do końca, ponieważ nie mogłem go uruchomić/czekać, aby to zrobić.Ale twoja uwaga została podjęta. – paxdiablo
To zależy od sposobu działania .exe. Obawiam się, że nie mam wszystkich szczegółów technicznych ani terminologii, ale niektóre pliki .exe zwrócą kontrolę nad sesją natychmiast po rozpoczęciu, podczas gdy inne nie zwrócą kontroli, dopóki program się nie zakończy.
Drugi przypadek jest łatwy, ponieważ polecenia późno w pliku nie zostaną wykonane, dopóki pierwszy z nich nie zostanie zakończony, więc zakładam, że napotykamy przypadek nr 1.
Łatwe obejście/włamanie, jeśli wykonanie trwa (w przybliżeniu) tyle samo czasu przy każdym uruchomieniu, to użycie polecenia ping z opóźnieniem.
PING 127.0.0.1 -n 1 -w 120000 >NUL
Spowoduje to uruchomienie polecenia ping z opóźnieniem 120000ms (2 min).
Istnieje również dobry artykuł na temat bardziej złożonej (ale bardziej niezawodnej metody) na fpschultze.de z bardziej szczegółowym wyjaśnieniem. Krótko mówiąc, wyszukujesz listę zadań wyszukując plik wykonywalny, na który czekasz. Jak tylko go tam nie będzie, będziesz kontynuował z plikiem wsadowym. Używa również metody ping, ale w inny sposób.
Właściwy sposób jest w rzeczywistości: PING 127.1 -n 10 -w 1000> NUL – djangofan
@djangofan - działa idealnie z twoją korektą. – SFun28
Niestety, proponowane obejście tego problemu jest po prostu okropne. Jest podatny na błędy i trudny do zrozumienia. Istnieje wiele lepszych sposobów wstrzymania na pewien czas (na przykład przekroczenia limitu czasu). – mafu
Możesz użyć polecenia "start" z parametrem/wait użyć start /? w wierszu poleceń po szczegóły.
Spróbuj, jak mogę, nie mogę uzyskać "start/wait explorer.exe", aby rzeczywiście czekać ... – paxdiablo
START /WAIT First.exe
START /WAIT Second.exe
Oto bardzo prosty proces. Wystarczy zachować następującą linię do odczekać 10 sekund, a następnie kontynuowanie innych poleceń ...
TIMEOUT /T 10
To wszystko, co musisz zrobić. Mam nadzieję, że spodoba ci się moja technika.
- 1. systemu Windows plik wsadowy && operator
- 2. Uruchamianie poleceń systemu Windows plik wsadowy asynchronicznie
- 3. Plik wsadowy do ponownego uruchomienia usługi. Windows
- 4. Jak zakończyć plik wsadowy systemu Windows z poziomu procedury "wywołania"?
- 5. Sposób wstrzymania pliku wsadowego Windows po dwukrotnym kliknięciu?
- 6. W jaki sposób zapętlasz plik wsadowy Windows?
- 7. Plik wsadowy Windows do wielokrotnego uruchamiania pliku JAR
- 8. Plik wsadowy: maska pliku
- 9. Dołącz plik wsadowy do pliku wsadowego
- 10. Modyfikowanie "ścieżki do pliku wykonywalnego" usługi Windows
- 11. Włączając plik XSLT do pliku wykonywalnego
- 12. Czy odinstaluj program wsadowy dla systemu Windows?
- 13. Jak uzyskać dostęp do elementów menu kontekstowego powłoki systemu Windows?
- 14. Mac: Jak wyeksportować symbole z pliku wykonywalnego?
- 15. Skrót Windows do dowiązania symbolicznego do pliku wykonywalnego
- 16. Jak utworzyć hiperłącze do lokalnego pliku wykonywalnego?
- 17. Windows CMD: Jak utworzyć dowiązanie symboliczne do pliku wykonywalnego?
- 18. Okna Plik wsadowy - rura do ZNAJDŹ
- 19. Jak uzyskać plik wsadowy do akceptowania danych wejściowych z pliku txt?
- 20. Usługa wdrażania systemu Windows
- 21. plik wsadowy znaleźć przedłużenie
- 22. problem podczas wywoływania pliku wykonywalnego w ścieżce, która ma zaplecze
- 23. Dlaczego potrzebny jest plik obiektowy do wygenerowania pliku wykonywalnego?
- 24. Konwersja .jar do pliku wykonywalnego OSX?
- 25. Skompiluj kod Swift do natywnego pliku wykonywalnego dla systemu Linux
- 26. Zamknij plik wsadowy po uruchomieniu pliku JAR
- 27. Plik wsadowy do zmiany rozdzielczości ekranu w systemie Windows 7
- 28. Uruchom plik wsadowy z kodu Java
- 29. Plik wsadowy - Usuń drugie rozszerzenie pliku
- 30. Wybierz najwyższy numer pliku - plik wsadowy
Myślę, że zależy to trochę od uruchomionych aplikacji. Jeśli aplikacja jest programem uruchamiającym, który uruchamia inne usługi lub GUI, to myślę, że niewiele można zrobić bez pisania aplikacji do monitorowania procesów i/lub okien. –