Skocz do zawartości


tablety.pl
Zdjęcie

Wstrzymanie wykonywania pliku BAT




  • Zaloguj się, aby dodać odpowiedź
6 odpowiedzi w tym temacie

#1 Giegore

Giegore

    First Rank

  • Użytkownicy
  • 14 postów

Napisano 26 02 2010 - 01:54

Witam

Mam następujący plik BAT (WinXP):

START /LOW /MIN program.exe
DIR /B > lista.txt

Polecenie DIR zapisuje pliki, które tworzy program.exe. Niestety program.exe zostaje uruchomiony a skrypt wykonuje się dalej w trakcie działania program.exe - w efekcie plik lista.txt jest pusty.

Jak zatrzymać działanie sktyptu do czasu wykonania programu program.exe?
Zaznaczam, że czas działania program.exe jest bardzo różny więc raczej odpada stałe opóźnienie czsowe.

#2 Heniek

Heniek

    Expert Rank

  • Użytkownicy +
  • 8194 postów
  • Płeć:Mężczyzna
  • Lokalizacja:Browarlandia :D

Napisano 26 02 2010 - 02:01

Wklep: start /?
i poczytaj.
Dołączona grafika Dołączona grafika Dołączona grafika
mooo! [:

#3 Giegore

Giegore

    First Rank

  • Użytkownicy
  • 14 postów

Napisano 26 02 2010 - 02:12

Wklep: start /?
i poczytaj.


Czy masz na myśli:

"Przy wykonywaniu 32-bitowych aplikacji GUI, program CMD.EXE
nie czeka, aż aplikacja zakończy działanie, przed powrotem do
wiersza polecenia. To nowe zachowanie nie występuje jednak, jeśli
aplikacja została wywołana ze skryptu poleceń."

Program.exe to sqlcmd

#4 Heniek

Heniek

    Expert Rank

  • Użytkownicy +
  • 8194 postów
  • Płeć:Mężczyzna
  • Lokalizacja:Browarlandia :D

Napisano 26 02 2010 - 02:20

Nie, chodzi mi o:

Uruchamia program lub polecenie w oddzielnym oknie.

START ["tytuł"] [/D ścieżka] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
	  [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
	  [/AFFINITY <wartość szesnastkowa koligacji>] [/WAIT] [/B]
	  [polecenie/program] [parametry]

	"tytuł"	 Tytuł do wyświetlenia na pasku tytułu okna.
	ścieżka	 Katalog początkowy.
	B		   Uruchamia aplikację bez tworzenia nowego okna. Aplikacja
				ignoruje obsługę klawiszy Ctrl+C. Jeśli aplikacja nie będzie
				obsługiwać przetwarzania klawiszy Ctrl+C, jedynym sposobem
				przerwania jej działania będzie użycie klawiszy Ctrl+Break.
	I		   Nowym środowiskiem będzie oryginalne środowisko przekazane
				do programu cmd.exe, a nie środowisko bieżące.
	MIN		 Uruchamia okno zminimalizowane.
	MAX		 Uruchamia okno zmaksymalizowane.
	SEPARATE	Uruchamia 16-bitowy program systemu Windows w oddzielnym
				obszarze pamięci.
	SHARED	  Uruchamia 16-bitowy program systemu Windows w obszarze
				pamięci współużytkowanej.
	LOW		 Uruchamia aplikację z priorytetem klasy IDLE.
	NORMAL	  Uruchamia aplikację z priorytetem klasy NORMAL.
	HIGH		Uruchamia aplikację z priorytetem klasy HIGH.
	REALTIME	Uruchamia aplikację z priorytetem klasy REALTIME.
	ABOVENORMAL Uruchamia aplikację z priorytetem klasy ABOVENORMAL.
	BELOWNORMAL Uruchamia aplikację z priorytetem klasy BELOWNORMAL.
	AFFINITY	Nowa aplikacja będzie mieć określoną maskę koligacji.
				procesora wyrażoną w postaci liczby szesnastkowej.
	WAIT		Uruchamia aplikację i czeka na jej zakończenie.
	polecenie/program
				Jeśli jest to wewnętrzne polecenie interpretera Cmd lub plik
				wsadowy, procesor poleceń (cmd.exe)jest uruchamiany z użyciem
				przełącznika /K. Oznacza to, że okno pozostanie wyświetlone
				po wykonaniu polecenia.

				Jeśli nie jest to wewnętrzne polecenie interpretera cmd
				lub plik wsadowy, wówczas jest to program i zostanie on
				uruchomiony jako aplikacja w oknie lub aplikacja konsoli.

	parametry   Parametry przekazywane do polecenia/programu

UWAGA: Opcje SEPARATE i SHARED nie są obsługiwane na platformach 64-bitowych.

Przy włączonych rozszerzeniach poleceń wywołanie zewnętrznych poleceń
za pomocą wiersza polecenia lub polecenia START zmienia się następująco:

pliki, które nie są wykonywalne, mogą być wywołane przez skojarzenie,
	po prostu przez wpisanie nazwy pliku jako polecenia.  (np.  WORD.DOC
	uruchomi aplikację skojarzoną z rozszerzeniem .DOC).
	W opisie poleceń ASSOC i FTYPE można znaleźć informacje dotyczące
	tworzenia skojarzeń w skrypcie polecenia.

Przy wykonywaniu 32-bitowych aplikacji GUI, program CMD.EXE
	nie czeka, aż aplikacja zakończy działanie, przed powrotem do
	wiersza polecenia. To nowe zachowanie nie występuje jednak, jeśli
	aplikacja została wywołana ze skryptu poleceń.

Przy wykonywaniu wiersza polecenia, którego pierwszym leksemem jest CMD
	bez rozszerzenia lub nazwy ścieżki, CMD jest zastępowane wartością
	zmiennej COMSPEC - unika się w ten sposób używania przypadkowych
	wersji CMD.EXE w najmniej oczekiwanych momentach.

Przy wykonywaniu wiersza polecenia, którego pierwszy leksem nie zawiera
	rozszerzenia, program CMD.EXE używa zmiennej środowiskowej PATHEXT
	do określenia, których rozszerzeń szukać, i w jakiej kolejności.
	Domyślną wartością zmiennej PATHEXT
	jest:

		.COM;.EXE;.BAT;.CMD

	Zauważ, że składnia jest ta sama, co w zmiennej PATH,
	ze średnikami oddzielającymi różne elementy.

Przy wykonywaniu polecenia, jeśli nie można znaleźć pliku pasującego do
żadnego rozszerzenia, przeszukiwane są nazwy katalogów. Jeśli zostanie
znaleziony katalog pasujący do nazwy bez rozszerzenia, polecenie START
uruchamia Eksploratora dla tej ścieżki. Jeśli jest to wykonywane z wiersza
polecenia, jest to równoważne wydaniu polecenia CD /D do tej ścieżki.

Dołączona grafika Dołączona grafika Dołączona grafika
mooo! [:

#5 Giegore

Giegore

    First Rank

  • Użytkownicy
  • 14 postów

Napisano 26 02 2010 - 02:36

Dziękuję za ponowną szybką odpowiedź!

Zrozumiałem dokladnie co miałeś na myśli w pierwszym Twoim poście. Pomoc przeglądałem zamim otwarłem temat. Wybacz lecz nie bardzo widzę tu dla siebie rozwiązanie może z racji pory może z racji tego, że w tematykę informatyczną wchodzę sporadycznie. Stąd moje pytanie o frgment zacytowanego przez Ciebie manuala. Czy w tym kierunku iść? Nie bardzo rozumiem fragment:

"aplikacja została wywołana ze skryptu poleceń"

Mógłbyś to wyjaśnić bardziej łopatologicznie?

Pozdrawiam

#6 Heniek

Heniek

    Expert Rank

  • Użytkownicy +
  • 8194 postów
  • Płeć:Mężczyzna
  • Lokalizacja:Browarlandia :D

Napisano 26 02 2010 - 02:37

Mógłbyś to wyjaśnić bardziej łopatologicznie?

START /LOW /MIN /WAIT program.exe



WAIT - Uruchamia aplikację i czeka na jej zakończenie.
Dołączona grafika Dołączona grafika Dołączona grafika
mooo! [:

#7 Giegore

Giegore

    First Rank

  • Użytkownicy
  • 14 postów

Napisano 26 02 2010 - 02:48

Mógłbyś to wyjaśnić bardziej łopatologicznie?

START /LOW /MIN /WAIT program.exe



WAIT - Uruchamia aplikację i czeka na jej zakończenie.


Fakt w manualu - PISZE JAK BYK - chyba to jednak ta pora! Działa jak trzeba!
Pierwsze kłody za mną.
Lecimy dalej ze skryptem.

Dzięki za pomoc. Pozdrwiam




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych