Hallo zusammen
Hintergrund:
Über Matlab rufe ich in einer parallerisierten for-Schleife mit System("Simulations.exe >output.txt") einige tausend Mal eine externe Simulation.exe über die CMD auf. Eine Simulation benoetigt dabei ca. 3 bis 8 Sekunden.
Außer der Umleitung des Outputs in eine Datei, werden keine weiteren Befehle an die CMD oder das Programm uebergeben (Austausch erfolgt ueber Textdateien).
Ohne die Umleitung verdoppeln sich die Ausfuehrungszeit.
Problem:
Die Simulation.exe rennt leider in einigen seltenen und unbekannten Faellen in eine Endlosschleife.
Gesucht:
Ich suche also eine Moeglichkeit, ein Programm ueber CMD, Batch, Powershell oder Matlab, ohne zeitverlust auszufuehren, mit der Bedingung es zwangsweise nach einer festen Zeit zu beenden. Idealerweise mit einer eindeutigen Rueckmeldung, wenn es vorzeitig beendet wurde.
Dabei muss der Output der Simulation.exe in eine Datei umgeleitet werden (enthaelt moegliche Fehlermeldungen).
Der Aufruf soll komplett im Hintergrund ablaufen.
In Matlab gibt es zwar die Moeglichkeit, den Befehl asynchron aufzurufen, aber eine anschließende Ueberwachung des CMD-Prozesses halte ich aber nicht fuer sinnvoll, weil er Zeit und Ressourcen kosten wuerde.
Allerdings habe ich auch nicht herausfinden koennen, wie ich an die passende PID komme, falls ich den Prozess beenden muesste.
Entsprechend die Frage, ob jemand von euch vielleicht eine Idee hat, wie man bzw. ob man ein Programm ueber Batch/Powershell mit entsprechenden Bedinungen aufrufen kann.
Hintergrund:
Über Matlab rufe ich in einer parallerisierten for-Schleife mit System("Simulations.exe >output.txt") einige tausend Mal eine externe Simulation.exe über die CMD auf. Eine Simulation benoetigt dabei ca. 3 bis 8 Sekunden.
Außer der Umleitung des Outputs in eine Datei, werden keine weiteren Befehle an die CMD oder das Programm uebergeben (Austausch erfolgt ueber Textdateien).
Ohne die Umleitung verdoppeln sich die Ausfuehrungszeit.
Problem:
Die Simulation.exe rennt leider in einigen seltenen und unbekannten Faellen in eine Endlosschleife.
Gesucht:
Ich suche also eine Moeglichkeit, ein Programm ueber CMD, Batch, Powershell oder Matlab, ohne zeitverlust auszufuehren, mit der Bedingung es zwangsweise nach einer festen Zeit zu beenden. Idealerweise mit einer eindeutigen Rueckmeldung, wenn es vorzeitig beendet wurde.
Dabei muss der Output der Simulation.exe in eine Datei umgeleitet werden (enthaelt moegliche Fehlermeldungen).
Der Aufruf soll komplett im Hintergrund ablaufen.
In Matlab gibt es zwar die Moeglichkeit, den Befehl asynchron aufzurufen, aber eine anschließende Ueberwachung des CMD-Prozesses halte ich aber nicht fuer sinnvoll, weil er Zeit und Ressourcen kosten wuerde.
Allerdings habe ich auch nicht herausfinden koennen, wie ich an die passende PID komme, falls ich den Prozess beenden muesste.
Entsprechend die Frage, ob jemand von euch vielleicht eine Idee hat, wie man bzw. ob man ein Programm ueber Batch/Powershell mit entsprechenden Bedinungen aufrufen kann.