因此,我尝试使用system()
运行一系列命令,但我注意到更改无法继续进行。例如,我将变量p定义为用户输入set /p p=Enter name
(或在powershell $p=Read-Input "Enter Name"
中
现在,如果我想再次使用P,我使用system("echo %p%")
(或%p我忘了哪个),但是p在此处未定义,因为新的系统调用会创建一个新的cmd调用。我也试过system("CD test")
但CD仍然是相同的,并且在下一次系统调用中没有变化。
如何确保系统调用彼此使用'变量等?
答案 0 :(得分:1)
根据定义,system
的每次调用都有自己的环境。
在Linux和Mac上,您可以使用popen
,MSVC也有类似的_popen
。
那就是说,雷米的评论是一个可行的选择。从您自己的代码调用system
后,您仍然可以使用SetCurrentDirectory()
开始卷曲。你的问题是连续的孩子不会继承彼此的环境;它们都继承自父进程(即您的C ++代码)。所以让那个父母正确。