Dos命令复制文件夹到制定目录 删除指定目录及其文件夹下的文件

时间:2023-02-11 12:31:25

Dos命令复制文件夹到制定目录:

int GetRootPath(string& sRootPath)

{
char fileName[MAX_PATH] = {0};
GetModuleFileNameA(NULL, fileName,MAX_PATH);
std::string createPath = fileName;
std::string::size_type pos = createPath.rfind('\\');
createPath.erase(pos, createPath.size() - pos);


sRootPath = createPath;


return 0;
}




void CopyDirToDir( char * pSrcDir, char * pdesDir )
{
USES_CONVERSION;


std::string sRootPath;
GetRootPath(sRootPath);


CString srcDir = CString( sRootPath.c_str() );
CString desDir = CString(pdesDir);//CString("E:\\tcopy");


CString strCmd = CString(L"XCOPY ") + CString("\"")+srcDir+CString("\"") + CString(" ") + CString("\"")+desDir+CString("\"")  + CString(" /e");
//MessageBox(strCmd);

WinExec( W2A(strCmd), SW_SHOW );
  

}



二:

关于在MFC中的Winexec函数和system函数执行dos命令的区别:

如果是一般的dos命令,winexec更好一些,因为可以隐藏dos界面窗口;

但是在用到echo的时候,system函数更好一些,

如:复制 文件 a 到指定目录,但是指定目录文件a已存在,然后会提示,是否覆盖,如果全部覆盖,选择A;


一般的命令过程是:

1:    XCOPY "a.txt" "E:\copy\a.txt"

2: A


如果想在dos命令中一次,写好,可以这样:echo A| XCOPY "a.txt" "E:\copy\a.txt"

但是在MFC中,如果用winexec函数,就没有执行,但是用system就可以,这里需要注意;


删除指定目录及其文件夹下的文件:

: 百度文章《怎么在dos下删除文件夹


删除文件夹的方法例如: 
你D盘有个文件夹名为bat 
删除方法:运行cmd 回车 
输入rd d:\bat 回车就行了 
删除文件的方法:例如:E盘有个压缩文件名为nest.rar 
删除方法:运行cmd 回车 
输入del e:\nest.rar 回车就可将这个文件删除. 

第一rd只能删除文件夹是不能删除文件的. 
第二del 只能删除文件,不能删除文件夹,如果删除文件必须要把文件的格式加上才能删除.

补充问题:如果要删除bat文件夹以下所有文件:
运行cmd
rd /s /qd:\bak
这样bat 以下不管是文件夹还是文件都可以删除的.