2016-10-05 3 views
0

Wir möchten ein Programm von CMD.exe ausführen, aber CMD.exe durch den neuen Prozess ersetzen. Was wir sehen, ist, dass CMD jedes Programm immer als Subprozess erzeugt, aber wir brauchen CMD, um einen bestimmten Subprozess aufzurufen und sich selbst durch diesen Prozess zu ersetzen. In POSIX würden Sie dies mit execl*()/execv*() Familie von Funktionen erreichen.Unterstützt Windows CMD.exe Exec?

Ich kenne den START-Befehl, aber dieser Befehl öffnet eine neue Konsole - was für uns keine Option ist. Unser Prozess wird innerhalb eines Service ausgeführt und kann keine neue Konsole öffnen. Wir suchen nach einer Möglichkeit, CMD.exe zu bitten, die Funktionalität exec() aufzurufen.

HINWEIS: Unsere Forschung sagt, das kann nicht getan werden, aber bevor wir aufgeben, dachte ich, ich würde mit anderen überprüfen.

+1

Nicht möglich, sorry. Warum musst du 'cmd' durchlaufen, um deinen Prozess zu erstellen? – Jon

+0

Wir müssen ein Python-Skript ausführen - und dieses Skript führt os.execl() aus - aber da CMD.exe geladen bleibt, sieht es den Python-Prozess beendet und injiziert sich selbst erneut in die Verarbeitung von stdin/stdout. – user590028

+0

Sie benötigen 'cmd' nicht, um ein Python-Skript auszuführen. Führen Sie einfach python.exe (oder was auch immer) direkt aus. –

Antwort

0

-Serverfault.com

Bezug Es gibt eine vollständige Antwort Deine Frage zu. Es ist möglich, Batch-Skripte mit "Aufruf", aber nicht für Prozesse/Programme

+0

Traurig - aber ich vermute dein Recht. Danke für die ServerFault-Verbindung. – user590028

Verwandte Themen