为什么system()函数不起作用?

Ous*_*uni 1 c cmd system

据我所知,在cmd中,当我们想要切换驱动器时,我们写"[drive]:"例如:当我们要切换到D:\时,我们输入

D:

我尝试这个,它的工作.

但是现在,我想在我的C程序中应用这个过程,所以我使用着名的"系统"命令并输入:

system("D:");

之后我有一些代码,当我尝试执行它时,它会写入

the specified path was not found.
Run Code Online (Sandbox Code Playgroud)

所以我试图看看系统命令是否真的有效,我添加了另一个系统命令,如下所示:

system("chdir");
Run Code Online (Sandbox Code Playgroud)

验证工作目录,当我执行它时,它向我显示可执行文件的路径,这意味着它system("D:");不起作用.

任何解决方案请

unw*_*ind 6

可能是因为system()启动了一个新的实例cmd.exe,它运行你的命令然后退出.因此,它不会在调用之间保持状态,这与运行单个实例并以交互方式为其提供多个命令不同.

解决这个问题的一种方法是通过cmd.exe帮助文字暗示:

请注意,'&&' 如果用引号括起,则接受由命令分隔符分隔的多个命令.

因此,您应该能够运行一个命令,例如"d: && chdir"在一次调用中执行这两个操作cmd.exe.