Windows 7 Forum: konfiguracja, optymalizacja, porady, gadżety •
Plik wsadowy nie czeka - Wersja do druku

+- Windows 7 Forum: konfiguracja, optymalizacja, porady, gadżety • (https://windows7forum.pl)
+-- Dział: Pomoc i wsparcie, Windows 7 (/pomoc-i-wsparcie-windows-7-26-f)
+--- Dział: Software (/software-27-f)
+--- Wątek: Plik wsadowy nie czeka (/plik-wsadowy-nie-czeka-39596-t)



Plik wsadowy nie czeka - prmex - 09.03.2014 12:26

Witam
Mój *.bat nie działa jakbym chciał.
Uruchamia oba programy jeden po drugim ale równolegle.

Kod:
@echo off
prog1.exe
prog2.exe
exit

Start /wait itp nie działa.
Działa jak między programy wstawię pause, ale wolałbym inne rozwiązanie.
Jak zmusić batch'a aby uruchomił prog2.exe dopiero jak zakończy się prog1.exe?

Proszę o pomoc.
(W7 ultimate)


RE: Plik wsadowy nie czeka - izaw - 09.03.2014 18:32

Spróbuj
Kod:
@echo off
prog1.exe && prog2.exe
exit



RE: Plik wsadowy nie czeka - prmex - 09.03.2014 22:57

Sęk w tym że programy są w osobnych kartotekach.
Taki jest mój cały batch:

Kod:
@echo off
cd CS
prog1.exe
cd ..
cd TM
prog2.exe
exit

więc nie mam pomysłu jak implementować Twój pomysł.


RE: Plik wsadowy nie czeka - irocket - 10.03.2014 06:27

Kod:
@echo off
"x: /ścieżka/prog1.exe" && y:  && "y: /ścieżka/prog2.exe"
Kod:
@echo off
"x: /ścieżka/prog1.exe" && "x: /ścieżka2/prog2.exe"



RE: Plik wsadowy nie czeka - prmex - 10.03.2014 08:24

(10.03.2014 06:27)irocket napisał(a):  
Kod:
@echo off
"x: /ścieżka/prog1.exe" && y:  && "y: /ścieżka/prog2.exe"
Kod:
@echo off
"x: /ścieżka/prog1.exe" && "x: /ścieżka2/prog2.exe"

Drugi działa tak jak mój, czyli oba się otwierają.

Pierwszy natomiast uruchamia prog1 tylko.
(próbowałem zarówno z y: jak i c: między && &&, bo nie wiedziałem czy to parametr czy litera dysku z drugiej ścieżki
Przecież to nie może być niemożliwe Smutny
Może jakąś pętlę dopóki coś tam?

//edyta: nie wiem na ile ma to znaczenie, ale widocznie ma. Bo możliwe że wsadowy czekałby gdyby nie.....
no właśnie gdyby nie to że po uruchomieniu prog1 prawie momentalnie proces uruchomiony (wg podglądu taskmgr) zmienia nazwę z prog1.exe na javaw.exe. Program napisany jest w Processingu i korzysta z javy.
Zatem może faktycznie batch myśli że prog1.exe już się skończył i uruchamia drugi exe.
Czy w tej sytuacji ma ktoś pomysł?


RE: Plik wsadowy nie czeka - prmex - 10.03.2014 10:11

Pogrzebałem trochę w necie i częściowo sprawę rozwiązałem.

Kod:
@echo off
cd CS
prog1.exe
cd ..

: laba
tasklist /FI "IMAGENAME eq javaw.exe" 2>NUL | find /I /N "javaw.exe" >NUL
if "%ERRORLEVEL%"=="0" goto : laba


cd TM
prog2.exe
exit

częściowo, bo to działa tylko wówczas kiedy nie ma żadnego "chodzącego" procesu o nazwie javaw.exe.
A jest taka groźba bo prog2.exe też jest jav'owski i czasem jak się wiechnie to mimo zamknięcia okna programu2 na siłę zostaje w taskmgr javaw.exe (a wiechnąć się moze np. przy próbie uruchomienia pod nieobecność żadnego dostępnego COM'a). Ale w sumie trzeba by mocno nagrzebać żeby tak się powiesił, bo po to jest prog1 aby te sprawy załatwiać.
No dobra grunt, że sprawa się rozwiązała - dziękuję za odpowiedzi i inspiracje. Uśmiechnięty