我知道 system()
函数,但它创建了它自己的环境,所以这里设置的每个变量都不会转发到主控制台。我想知道是否可以发送由用户编写的命令或由 *.bat 文件执行的命令?
我需要这个的原因是我正在寻找一种方法来设置父 CMD 进程的环境变量。是的,我知道系统不希望我这样做,但也许有一些解决方法...
想法是创建一个应用程序,它将通过输入管道发送给它的任何东西设置为一个变量,如下所示:
echo Bob| setvar name
那么:
echo %name%
会产生Bob
整个想法是通过考虑特殊批处理字符如 ^! %
因为这些在文件名中是允许的。它会使许多 cmd 脚本变得更简单。
最佳答案
您当然可以在与您的程序相同的控制台窗口中运行程序。这是 CreateProcess
的默认行为. MSDN 在 what happens between related processes sharing a console 上有更多详细信息.在继续运行您自己的程序之前,您可能希望等待子进程终止。
但是,这对您的真正目标没有帮助。程序运行的窗口与其任何祖先进程的环境变量完全无关。你必须 look elsewhere以解决您的实际问题。
关于c++ - 是否可以将命令发送到运行我的程序的控制台窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10686928/