我想用這個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
我該怎麼辦?
我想用這個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
我該怎麼辦?
「我該怎麼辦?」
你只需做到這一點(使用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程序。
謝謝你,你回答幫助我,但std :: system(「ROBOCOPY D:/ folder1 D:/ folder2/S/E」);不是爲我工作,而是爲std :: system(「ROBOCOPY D:\\\\ folder1 D:\\\\ folder2/S/E」);作品。你能解釋什麼是逃生角色,爲什麼我們需要使用它們? –
http://en.wikipedia.org/wiki/Escape_sequences_in_C – drescherjm
最簡單的方法是調用標準庫函數system
:http://www.cplusplus.com/reference/cstdlib/system/
如果您需要更多的靈活性,http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspxCreateProcess
是去的東西 - STARTUPINFO參數讓你不喜歡的東西傳遞給它的自定義輸入和捕捉其產量也是如此。
請顯示小的內聯樣本,而不僅僅是提供鏈接。這將光榮地改善你的答案。 –
系統(「Yourcommand」),WinExec或CreateProcess以更簡單更好的順序。 – tux3
爲什麼即使使用Robocopy?爲什麼不用C++複製目錄? – Biffen
如果您將路徑硬編碼爲字符串文字,您是否已經逃避了'\\'? – drescherjm