dernerl
Goto Top

Batch um Programm nach Prüfung zu starten

Hallo Community,

könnt ihr mir bei meinem Code helfen, der Outlook erst starten soll wenn mein Softphone geöffnet ist? So ganz will das nicht funktionieren und ich bin auch noch in den Anfängen wenn es um scripten geht...


Hier mein Code:
@echo OFF
:loop
start "" "C:\Program Files (x86)\Microsoft Office\Office14\outlook.exe"
exit

Content-Key: 222393

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

Printed on: April 20, 2024 at 00:04 o'clock

Member: Snowman25
Snowman25 Nov 19, 2013 at 15:27:46 (UTC)
Goto Top
Hallo @dernerl,

Angenommen, dass communicatork9.exe nur vorhanden ist, wenn dein Smartphone angeschlossen ist.
Probiers mal so:
:loop
tasklist|findstr communicatork9.exe 1>nul
IF %ERRORLEVEL% NEQ 1 GOTO :outlook
ping localhost -n 5 1>nul
GOTO :loop

:outlook
start /WAIT  "" "C:\Program Files (x86)\Microsoft Office\Office14\outlook.exe"  
GOTO :loop

Ist ungetestet. Die Logik dahinter:
  • läuft communicatork9.exe?
  • Wenn ja:
    • starte Outlook und warte, bis es wieder beendet wird
  • Sonst:
    • Warte 5 Sekunden und schau nochmal.

Gruß,
@Snowman25
Member: dernerl
dernerl Nov 27, 2013 at 07:56:52 (UTC)
Goto Top
Okay, danke das funktioniert!
Kannst du mir den Code noch näher erklären?

Vorallem:

IF %ERRORLEVEL% NEQ 1 GOTO :outlook

und

das letzte GOTO :Loop macht doch eine endlos Schleife, oder nicht?
Member: Snowman25
Snowman25 Nov 27, 2013 at 09:06:57 (UTC)
Goto Top
Klar:

IF %ERRORLEVEL% NEQ 1 GOTO :outlook 
Wenn der ERRORLEVEL nicht 1 ist, soll das Script zu :outlook springen.
Der ERRORLEVEL wird durch den findstr-Befehl gesetzt. Wenn das gesuchte Wort gefunden wird, ist der ERRORLEVEL 0, ansonsten 1.

Der letzte GOTO-Befehl macht in der Tat die Endlosschleife komplett.
start /WAIT startet ein Programm und wartet mit der weiteren Ausführung, bis dieses wieder beendet wurde.

Gruß,
@Snowman25

Sollte das dein Problem gelöst haben, mach bitte einen Haken an die Frage.
Member: dernerl
dernerl Nov 27, 2013 at 09:47:55 (UTC)
Goto Top
Zitat von @Snowman25:

Der letzte GOTO-Befehl macht in der Tat die Endlosschleife komplett.

aber dann wird doch Outlook ständig neu geöffnet weil dann wieder an den Anfang des Programms gesprungen wird. Oder hab ich da was falsch verstanden?

Gruß
dernerl
Member: Snowman25
Snowman25 Nov 27, 2013 at 09:49:07 (UTC)
Goto Top
Zitat von @dernerl:
aber dann wird doch Outlook ständig neu geöffnet weil dann wieder an den Anfang des Programms gesprungen wird. Oder hab
ich da was falsch verstanden?
Zitat von @Snowman25:
start /WAIT startet ein Programm und wartet mit der weiteren Ausführung, bis dieses wieder beendet wurde.
Member: dernerl
dernerl Nov 27, 2013 at 13:53:56 (UTC)
Goto Top
dann würde ja beim Beenden von Outlook wieder die Abfrage von vorne beginnen und somit Outlook wieder starten, oder nicht?
Member: Snowman25
Snowman25 Nov 27, 2013 at 14:09:50 (UTC)
Goto Top
ja, ausser es läuft der Prozess communicatork9.exe.