Prograam starten in Batchdatei und auf dessen Ende warten
Hallo!
Ich habe folgendes Problem:
In einer Batchdatei unter WindowsXP soll ein Win32-Programm gestartet werden mit dem eine Datei bearbeitet wird.
Nach dessen Beendigung soll dann die Batchdatei fortfahren und die Datei zippen.
Leider wartet
nicht bis programm.exe beendet ist, sondern beginnt sofort nach dem Aufrauf mit dem zippen.
Wie kann ich das Problem anders loesen?
MfG, Markus Zoeller
Ich habe folgendes Problem:
In einer Batchdatei unter WindowsXP soll ein Win32-Programm gestartet werden mit dem eine Datei bearbeitet wird.
Nach dessen Beendigung soll dann die Batchdatei fortfahren und die Datei zippen.
Leider wartet
start /wait programm.exe
nicht bis programm.exe beendet ist, sondern beginnt sofort nach dem Aufrauf mit dem zippen.
Wie kann ich das Problem anders loesen?
MfG, Markus Zoeller
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 15374
Url: https://administrator.de/forum/prograam-starten-in-batchdatei-und-auf-dessen-ende-warten-15374.html
Ausgedruckt am: 23.12.2024 um 15:12 Uhr
7 Kommentare
Neuester Kommentar
Hmm, thavron,
hab ich auch noch nie probiert. Nach der Hilfe ( "start /?") hast Du alles richtig gemacht. Da steht ja:
Wird eine grafische 32-Bit-Anwendung aufgerufen, wartet CMD.EXE nicht auf
das Beenden dieser Anwendung, sondern kehrt sofort zur Eingabeauforderung
zurück. Das gilt NICHT, wenn diese Anwendung aus einem Befehlsskript
heraus aufgerufen wird.
Diese merkwürdige doppelte Verneinung hätte ich auch so verstanden, dass in einem Batch gewartet wird. Wenn das aber nicht so ist, würde ich folgende Strategie wählen, ehe ich lange rumgoogele (wenn Du wenigstens in der *.bat-Datei weißt, auf was du wartest) :
(im Batch)
set /a ThisLoop=0
set TheInputForMyZipFile=d:\daten\vom\WindowsProggi\DATA.xyz
... Start /.. x:\Mein\WindowsProggi.exe
:waitForTheFilesToZip
if exist %TheInputForMyZipFile% goto machweiter
if %Thisloop%==10 goto givingUp
timeOut 3 (oder "sleep 3" oder "ping localhost -n3".... also 3 sec warten)
set /a Thisloop=%Thisloop% +1
goto waitForTheFilesToZip
:givingUp
echo "Fehler: WindowsProggi.exe hat sich nach 30 sec nicht zurückgemeldet!"
goto :eof
:machWeiter
(weitere CMD-Befehle)
Soweit die Skizze. Falls Du mal rausfindest, wieso sich der "Start /wait" nicht an die die Doku hält (so wie ich sie verstehe), poste das mal bitte.
HTH
Frank / der Biber aus Bremen
[edit]
Oder natürlich- ist mir grad eingefallen- in der "laufenden Prozessliste" nachsehen, ob das Windowsproggi noch drinsteht. Wenn ja-->warten.
Wenn fertig, dann alles z'sam-zippen. [/edit]
hab ich auch noch nie probiert. Nach der Hilfe ( "start /?") hast Du alles richtig gemacht. Da steht ja:
Wird eine grafische 32-Bit-Anwendung aufgerufen, wartet CMD.EXE nicht auf
das Beenden dieser Anwendung, sondern kehrt sofort zur Eingabeauforderung
zurück. Das gilt NICHT, wenn diese Anwendung aus einem Befehlsskript
heraus aufgerufen wird.
Diese merkwürdige doppelte Verneinung hätte ich auch so verstanden, dass in einem Batch gewartet wird. Wenn das aber nicht so ist, würde ich folgende Strategie wählen, ehe ich lange rumgoogele (wenn Du wenigstens in der *.bat-Datei weißt, auf was du wartest) :
(im Batch)
set /a ThisLoop=0
set TheInputForMyZipFile=d:\daten\vom\WindowsProggi\DATA.xyz
... Start /.. x:\Mein\WindowsProggi.exe
:waitForTheFilesToZip
if exist %TheInputForMyZipFile% goto machweiter
if %Thisloop%==10 goto givingUp
timeOut 3 (oder "sleep 3" oder "ping localhost -n3".... also 3 sec warten)
set /a Thisloop=%Thisloop% +1
goto waitForTheFilesToZip
:givingUp
echo "Fehler: WindowsProggi.exe hat sich nach 30 sec nicht zurückgemeldet!"
goto :eof
:machWeiter
(weitere CMD-Befehle)
Soweit die Skizze. Falls Du mal rausfindest, wieso sich der "Start /wait" nicht an die die Doku hält (so wie ich sie verstehe), poste das mal bitte.
HTH
Frank / der Biber aus Bremen
[edit]
Oder natürlich- ist mir grad eingefallen- in der "laufenden Prozessliste" nachsehen, ob das Windowsproggi noch drinsteht. Wenn ja-->warten.
Wenn fertig, dann alles z'sam-zippen. [/edit]
@Markus
*gg ..die Idee, die Du hattest, hatte ich auch - aber ich hab sie nach dem theoretischen Durchspielen als nicht erfolgversprechend verworfen.. kann nicht klappen, wenn sich "start" so verhält wie von dir beobachtet.
Aber die M$-Doku hättest Du doch auch so interpretiert wie ich - oder sind nur wir beide zu doof zum Lesen?
Hat zufällig jemand die Original-Hilfe auf ausländisch? Ist das ein Übersetzungsfehler?
*gg ..die Idee, die Du hattest, hatte ich auch - aber ich hab sie nach dem theoretischen Durchspielen als nicht erfolgversprechend verworfen.. kann nicht klappen, wenn sich "start" so verhält wie von dir beobachtet.
Aber die M$-Doku hättest Du doch auch so interpretiert wie ich - oder sind nur wir beide zu doof zum Lesen?
Hat zufällig jemand die Original-Hilfe auf ausländisch? Ist das ein Übersetzungsfehler?