2016-10-05 17 views
0

我們希望從CMD.exe運行程序,但要用新進程替換CMD.exe。我們所看到的是,CMD將始終產生任何程序作爲子進程,但我們需要CMD來調用特定的子進程,並用此進程取代它自己。在POSIX中,您可以通過execl*()/execv*()函數系列完成此任務。Window的CMD.exe是否支持exec?

我知道START命令,但是這個命令打開一個新的控制檯 - 這對我們來說不是一個選項。我們的流程正在從服務內運行,無法打開新的控制檯。我們正在尋找一種方法來請求CMD.exe調用exec()類型的功能。

注意:我們的研究表明這不能完成,但在我們放棄之前,我想我會與其他人一起檢查。

+1

不可能,對不起。爲什麼你需要通過'cmd'來產生你的過程? – Jon

+0

我們需要運行一個python腳本 - 並且該腳本執行os.execl() - 但是因爲CMD.exe保持加載狀態,它會看到python進程結束並重新注入自己,以處理stdin/stdout。 – user590028

+0

您不需要'cmd'來運行Python腳本。只需直接運行python.exe(或其他)。 –

回答

0

參考Serverfault.com

有關於你的問題一個完整的答案。 批處理腳本可以使用「調用」而不適用於進程/程序

+0

傷心 - 但我懷疑你的權利。感謝您的ServerFault鏈接。 – user590028