c++ - 是否可以将命令发送到运行我的程序的控制台窗口?

标签 c++ windows console

我知道 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/

相关文章:

c++ - 为什么会出现符号查找错误?

c++ - 使用 "Enterprise Architect"逆向工程 C++ 代码

c++ - 如何选择要在 XCode 中运行的 .cpp 文件?

mysql - 安装(最小)MySQL Workbench 以简单地连接两个 .csv 文件中的数据(连接???)

c++ - 无法在 Windows 上的 Qt Creator 中选择 GDB

windows - 好用的windows查看软件?

python - 在 Windows 7 中为 Python 安装 selenium

ruby - 重置 IRB 控制台

javascript - 了解 querySelector 和 querySelectorAll 控制台输出

c++ - 控制台应用程序不会立即关闭