簡體   English   中英

是否可以將命令發送到我的程序運行的控制台窗口?

[英]Is it possible to send command to console window in which my program is running?

我知道system()函數,但它創建了自己的環境,因此這里設置的每個變量都不會轉發到主控制台。 我想知道是否有可能發送命令,因為它將由用戶編寫或由* .bat文件執行?

我需要這個的原因是我尋找一種方法來設置父CMD進程的env變量。 是的,我知道系統不希望我這樣做,但也許有一些解決方法......

想法是創建應用程序,將設置為通過輸入管道發送給它的任何變量,如下所示:

echo Bob| setvar name

那么:

echo %name%

會產生Bob

整個想法是更容易設置任何程序輸出的變量(我知道如何使用for命令),同時考慮到^!%等特殊批處理字符的特殊性,因為這些在文件名中是允許的。 它會使許多cmd腳本變得更簡單。

您當然可以在與程序相同的控制台窗口中運行程序。 這是CreateProcess的默認行為。 MSDN詳細介紹了共享控制台的相關進程之間發生的事情 在繼續運行自己的程序之前,您可能希望等待子進程終止。

但是,這對您的真正目標沒有幫助。 程序運行的窗口與其任何祖先進程的環境變量完全無關。 你必須到別處尋找解決你真正問題的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM