如何将环境变量传递给另一个进程?

时间:2018-07-06 09:49:17

标签: c++ batch-file

这是源代码中的示例。

当我使用

SetEnvironmentVariable("key","false");

并在批处理文件中运行编译的文件

myfile.exe 
echo %key% 
pause

我的环境变量未定义。

如何更改此设置,使其输出错误?

1 个答案:

答案 0 :(得分:1)

环境变量只能沿一个方向传递:从父进程到子进程。在您的情况下,您正在尝试采用相反的方法,这非常困难。

相反,您可以使用程序的返回值

int main(int, char**)
{
    // ...

    return 123; // some error code maybe
}

可以轻松地与父进程进行通信,但这仅限于整数,并且您可能希望遵守有关这些返回值含义的现有约定。另一种可能性是让主程序写入标准输出,然后可以在批处理文件中对其进行解析以进行进一步处理。