Plik bat - opóźnienie wykonania drugiego startu

Witam.

Mam taki plik bat:

start /b D:\Programy\WebServ\WebServ.exe

start /b C:\Skroty\Chrome.lnk

Pierwsza linijka uruchamia mi serwer, a druga włącza przeglądarkę z adresem localhost. Niestety często jest tak, że przeglądarka włączy się szybciej niż uruchomi serwer. Nie znam za bardzo poleceń, więc pytam tutaj. Próbowałem dodać /wait, ale to nie działa, bo z tego co doczytałem to w tym przypadku chrome uruchomi się dopiero, jeśli zamknę webserva.

Może można dodać jakieś opóźnienie w wykonaniu drugiego startu? powiedzmy 5 sekund?

Sleep? http://ss64.com/nt/sleep.html

Ok dzięki :wink: Twój link mnie naprowadził. Teraz mam coś takiego

start /b D:\Programy\WebServ\WebServ.exe

timeout /t 5

start /b C:\Skroty\Chrome.lnk

I wszystko działa, ale jest problem natury kosmetycznej :slight_smile: Robię pierwszy raz taki plik więc przepraszam za być może głupie pytania. Czy jest możliwość, aby program zadziałał w tle bez wyświetlania tego czarnego okienka konsoli?

Wejdź we właściwości pliku BAT i ustaw “uruchamiaj w postaci zminimalizowanej” (lub jakoś tak).

Jest kilka różnych możliwości…

Np. pod tym linkiem znajdziesz trzy: How to Run Console Programs Without a Console Window

jesli no bach to :

na samym poczatku po prostu

@echo off

proste ~~ :smiley:

Mam podobny problem i nie mogę tego ogarnąć. Chcę zrobić tak:

  1. uruchomić usługę

  2. uruchomić program

  3. zatrzymać usługę

Program nie uruchamia się bez uruchomionej usługi.

Robię więc coś takiego:

sc start nazwa_uslugi

start cmd /c "D:\Program Files\program x\program x.exe"

timeout /t 13

sc stop nazwa_uslugi

Nie jestem zadowolony z tego, że okienko cmd się nie zamyka (zamyka się dopiero po wyłączeniu programu; a @echo off nic nie daje) oraz z tego, że proces programu uruchamia się dopiero 8s po uruchomieniu usługi. Timeout to min 13s dlatego, że mniej oznacza błąd programu, ale też tego nie rozumiem dlaczego trzeba tyle czekać. Sam program również uruchamia się 8s ale przecież jego proces mógłby się włączyć od razu po włączeniu usługi a usługa zatrzymać nawet zanim program zdążyłby się uruchomić do końca.

Próbowałem bawić się programem Hstart http://www.ntwind.com/software/hstart.html ale tam nie mogę ogarnąć jak zatrzymać usługę po uruchomieniu procesu programu.

Ma ktoś jakiś pomysł?

 

@exit pomoże.