okidoki
Goto Top

Batch + Timeout: Nach externem Programmende Batch fortführen

Hallo zusammen,

ich lasse mittels Batch ein Programm starten (z.B. Excel), überprüfe ob es noch läuft, und möchte nach manuellem Schließen das Batch weiterlaufen lassen.
Leider funktioniert der Sprung in die weitere Batch nach dem Schließen von Excel nicht.
Was mache ich falsch?

@echo off
start test.xlsx
timeout /T 3
:Start
tasklist /FI "IMAGENAME eq excel.exe" 2>NUL | find /I /N "excel">NUL  
if "%ERRORLEVEL%"=="1" taskkill /F /IM (goto :Ende) else (goto :Start)  
timeout /T 3
goto :Start

:Ende
echo Excel wurde beendet! Weiter mit diesem Batch ...
pause
exit

Gruß okidoki

Content-ID: 618492

Url: https://administrator.de/contentid/618492

Ausgedruckt am: 19.11.2024 um 17:11 Uhr

146189
Lösung 146189 02.11.2020 aktualisiert um 10:23:03 Uhr
Goto Top
Wenn du es unbedingt so machen willst (warum auch immer so aufwendig)
@echo off
start test.xlsx
timeout /T 3
:Start
tasklist /FI "IMAGENAME eq excel.exe" | findstr /ilc:"excel.exe" >NUL 2>&1 || goto Ende  
timeout /T 3
goto :Start

:Ende
echo Excel wurde beendet! Weiter mit diesem Batch ...
pause
exit
Einfacher geht es mit einem Einzeiler face-wink :
start "" /wait test.xlsx  
echo Hier geht's weiter  
OKIDOKI
OKIDOKI 02.11.2020 um 10:24:14 Uhr
Goto Top
Weniger ist manchmal mehr face-smile

SUPER, funktioniert tadellos, vielen Dank!

Gruß
okidoki
OKIDOKI
OKIDOKI 02.11.2020 um 10:28:38 Uhr
Goto Top
Vorher hatte ich das sehr lange mit Wait. Allerdings ist der Zeitraum, bis die Batch das Ende eines externen Programms erkennt sehr laaaang. Daher die Idee mit Timeout und einer weiteren Überprüfung nach kurzer Zeit.

Von daher funktioniert deine "lange" Version so wie sie soll, obwohl ich es natürlich lieber kürzer hätte face-smile
Werde daher auf deine Langversion zurückgreifen face-smile face-smile face-smile
146189
146189 02.11.2020 aktualisiert um 10:41:51 Uhr
Goto Top
Zitat von @OKIDOKI:
Vorher hatte ich das sehr lange mit Wait. Allerdings ist der Zeitraum, bis die Batch das Ende eines externen Programms erkennt sehr laaaang.
Geht hier instant und wesentlich schneller als jedes mal 3 Sekunden zu verschwenden face-wink... Hattest du bei dir wohl entweder nen Fehler in der Batch eingebaut, oder das Excel-Dokument hatte einen Fehler und der Prozess blieb nach dem Schließen im Hintergrund hängen.
OKIDOKI
OKIDOKI 02.11.2020 um 11:21:37 Uhr
Goto Top
... jetzt muss ich doch noch einmal nachhaken, da auch deine lange Lösung hängt - leider - es hängt bei folgender Meldung:

test.xlsx wird zur Extrahierungswarteschlange hinzugefügt
Dateien werden erweitert ....
Erweitern der Dateien ist abgeschlossen ...

Hast du eine Idee?
OKIDOKI
OKIDOKI 02.11.2020 um 11:28:27 Uhr
Goto Top
Anschlussfrage: Was bewirken "" ?
So oder so dauert es lange, bis der Batch weiterläuft ...
146189
146189 02.11.2020 um 11:31:21 Uhr
Goto Top
Zitat von @OKIDOKI:

... jetzt muss ich doch noch einmal nachhaken, da auch deine lange Lösung hängt - leider - es hängt bei folgender Meldung:

> test.xlsx wird zur Extrahierungswarteschlange hinzugefügt
> Dateien werden erweitert ....
> Erweitern der Dateien ist abgeschlossen ...
> 

Hast du eine Idee?
Nö das ist nicht Teil des Skriptes oben, also Glaskugel ....
146189
146189 02.11.2020 aktualisiert um 11:33:40 Uhr
Goto Top
Zitat von @OKIDOKI:

Anschlussfrage: Was bewirken "" ?
Das ist für einen Titel, wenn man die weglässt kann es sonst in ein paar Fällen zu Problemen kommen, einfach mal start /? eintippen dann siehst du das es ein "mandatory" Parameter ist.
So oder so dauert es lange, bis der Batch weiterläuft ...
Kennt keiner deine Umgebung und oder Skript hier und was deine Excel Datei sonst so macht etc. pp ...
OKIDOKI
OKIDOKI 02.11.2020 aktualisiert um 11:46:42 Uhr
Goto Top
Also,
Glaskugel: Das ist die Meldung im CMD Fenster!
Microsoft Windows [Version 10.0.19042.572]

Für den Test habe ich eine leere Excel-Datei genutzt - ohne Brimborium face-smile
146189
146189 02.11.2020 aktualisiert um 12:02:04 Uhr
Goto Top
Hab ich hier nirgendwo, aktuellstes Office 2019 Pro Plus auf 20H2. Die Meldung kommt eigentlich nur wenn man Office Updates installiert bzw. CAB Dateien extrahiert, dein Office wird also hier versuchen sich selbst zu aktualisieren. Also aktualisiere es erst mal vorher anständig dann werden diese Meldungen auch nicht mehr kommen!
OKIDOKI
OKIDOKI 02.11.2020 um 12:55:35 Uhr
Goto Top
Ich vermute eine Spur ...
Vorher wird tatsächlich eine CAB extrahiert und die daraus extrahierte *.xlsx wird geöffnet!
Liegt es also daran?

Falls das zu Problemen führt, gibt es eine Alternative zu consolenbasiertem Packen mit Boardmitteln? (Da es rechnerunabhängig funktionieren soll?)

Letztlich ist der aktuelle Stand so:

expand.exe vt-plan.cab -F:1.xlsx .\
expand.exe vt-plan.cab -F:2.xlsx .\
erase /Q vt-plan.cab
start "" /wait 2.xlsx  
echo weiter im Batch

dann dauert es ewig, bis die Batch weiterläuft, währenddessen auf der Console:
2.xlsx wird zur Extrahierungswarteschlange hinzugefügt
Dateien werden erweitert ....
Erweitern der Dateien ist abgeschlossen ...
146189
146189 02.11.2020 aktualisiert um 16:18:53 Uhr
Goto Top
Vorher wird tatsächlich eine CAB extrahiert und die daraus extrahierte *.xlsx wird geöffnet!
Sach ich doch, Dinge die hier keiner sehen konnte ....
dann dauert es ewig, bis die Batch weiterläuft, währenddessen auf der Console:
Dein Schlangenöl wohl am scannen ...
OKIDOKI
OKIDOKI 02.11.2020 um 17:18:45 Uhr
Goto Top
Nur, gibt es eine "Beschleunigungsmöglichkeit"?
Mit Schlangenöl meinst du wohl VS? Ich habe keine externe Software, sondern nur ein sauberes, Standard-Windows und eben Office. Ansonsten jungfräulich ...
Gibt es vielleicht eine Möglichkeit festzustellen, woran es genau hakt?
146189
146189 02.11.2020 um 17:28:42 Uhr
Goto Top
Zitat von @OKIDOKI:
Gibt es vielleicht eine Möglichkeit festzustellen, woran es genau hakt?
Process Monitor
OKIDOKI
OKIDOKI 02.11.2020 um 20:14:18 Uhr
Goto Top
Klasse Tipp, werde mich mal auf die Suche begeben face-smile
Danke dir!