2015-01-10 108 views
-2

我想用這個cmd命令如何在C++中使用CMD命令?

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

與條件的內容複製的文件夾1到文件夾2

if(i == 1) 

,並

if(i == 2) 

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

的內容拷貝的folder3到folder4

我該怎麼辦?

+0

系統(「Yourcommand」),WinExec或CreateProcess以更簡單更好的順序。 – tux3

+0

爲什麼即使使用Robocopy?爲什麼不用C++複製目錄? – Biffen

+0

如果您將路徑硬編碼爲字符串文字,您是否已經逃避了'\\'? – drescherjm

回答

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"
甚至還有兩個,這取決於解釋命令外殼(應該在沒有這樣做的窗口上工作):"D:\\\\folder3"
雖然更簡單的方法是使用更簡單的方法來編寫'/'字符,但最近也被用於指定windows程序。

+0

謝謝你,你回答幫助我,但std :: system(「ROBOCOPY D:/ folder1 D:/ folder2/S/E」);不是爲我工作,而是爲std :: system(「ROBOCOPY D:\\\\ folder1 D:\\\\ folder2/S/E」);作品。你能解釋什麼是逃生角色,爲什麼我們需要使用它們? –

+1

http://en.wikipedia.org/wiki/Escape_sequences_in_C – drescherjm