如何在 C++ 中使用 CMD 命令?

How to use a CMD command in c++?

我想使用这个cmd命令

ROBOCOPY D:\folder1 D:\folder2 /S /E

有条件将folder1的内容复制到folder2

if(i == 1)

并且

if(i == 2)

ROBOCOPY D:\folder3 D:\folder4 /S /E

将folder3的内容复制到folder4

我该怎么办?

最简单的方法是调用标准库函数systemhttp://www.cplusplus.com/reference/cstdlib/system/

如果您需要更大的灵活性,http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx CreateProcess 是您的不二之选 - STARTUPINFO 参数可让您执行一些操作,例如向其传递自定义输入并捕获其输出。

"what should i do?"

您只需这样做(使用 std::system() 函数):

#include <cstdlib>

// ...

if(i == 1) {
    std::system("ROBOCOPY D:/folder1 D:/folder2 /S /E");
}
else if(i == 2) {
    std::system("ROBOCOPY D:/folder3 D:/folder4 /S /E");
}

请注意,对于像 "D:\folder3" 这样的字符串文字,您需要使用另一个 '\' 转义 '\' 个字符:"D:\folder3".
或者甚至更多,取决于解释命令 shell(应该在 windows 上工作而不这样做):"D:\\folder3".
不过,更简单的方法是使用更简单的 '/' 字符,最近也可以指定 windows 路径。