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

时间:2015-01-10 20:48:48

标签: c++ cmd

我想使用此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

我该怎么办?

2 个答案:

答案 0 :(得分:1)

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

如果您需要更多的灵活性,http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx CreateProcess是可行的 - STARTUPINFO参数允许您执行诸如传递自定义输入和捕获其输出之类的事情。

答案 1 :(得分:1)

  

“我该怎么办?”

您只需执行此操作(使用 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 pathes的字符。