是否可以将命令发送到我的程序正在运行的控制台窗口?
Posted
技术标签:
【中文标题】是否可以将命令发送到我的程序正在运行的控制台窗口?【英文标题】:Is it possible to send command to console window in which my program is running? 【发布时间】:2012-05-21 14:13:10 【问题描述】:我知道system()
函数,但它创建了它自己的环境,因此此处设置的每个变量都不会转发到主控制台。我想知道是否可以发送用户编写的命令或 *.bat 文件执行的命令?
我需要这个的原因是我在寻找一种方法来设置父 CMD 进程的 env 变量。是的,我知道系统不希望我这样做,但也许有一些解决方法......
想法是创建一个应用程序,将通过输入管道发送给它的任何内容设置为变量,如下所示:
echo Bob| setvar name
那么:
echo %name%
会产生Bob
整个想法是更容易地从任何程序输出设置变量(我知道如何使用for
命令),同时考虑到特殊批处理字符(如^!%
)的特性,因为文件名中允许使用这些字符.它会使许多 cmd 脚本变得更简单。
【问题讨论】:
【参考方案1】:您当然可以在与您的程序相同的控制台窗口中运行程序。这是CreateProcess
的默认行为。 MSDN 有更多关于what happens between related processes sharing a console 的详细信息。您可能希望等待子进程终止,然后再继续运行您自己的程序。
但是,这无助于您实现真正的目标。程序运行的窗口与其任何祖先进程的环境变量完全无关。您必须look elsewhere 才能解决您的实际问题。
【讨论】:
以上是关于是否可以将命令发送到我的程序正在运行的控制台窗口?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Xcode5 上使用无线将开发中的应用程序发送到我的 iPhone?