【问题标题】: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 脚本变得更简单。

【问题讨论】:

    标签: c++ windows console


    【解决方案1】:

    您当然可以在与您的程序相同的控制台窗口中运行程序。这是CreateProcess 的默认行为。 MSDN 有更多关于what happens between related processes sharing a console 的详细信息。您可能希望等待子进程终止,然后再继续运行您自己的程序。

    但是,这无助于您实现真正的目标。程序运行的窗口与其任何祖先进程的环境变量完全无关。您必须look elsewhere 才能解决您的实际问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 2015-05-31
      • 2013-09-02
      相关资源
      最近更新 更多