我想使用此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
我该怎么办?
答案 0 :(得分:1)
最简单的方法是调用标准库函数system
:http://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 cmd上工作而不执行此操作):"D:\\\\folder3"
。
更简单的方法是使用更简单的编写'/'
字符,这也是最近指定windows pathes的字符。