如何批处理复制文件(文件夹)?

如何批处理复制文件(文件夹)?,第1张

1.复制C:\a\e.txt 文本文件到d:\b文件夹下面

【复制完的目录结构应该为d:\b\e.txt】

xcopy /y c:\a\e.txt d:\b\ >nul

2.复制C:\a文件夹及其内所有东西(包括隐藏,系统文件)到D:\b文件夹下面

【 a文件夹也要复制过去,也就是说,复制之后,a文件夹应该在b文件夹下】

xcopy /y /e /h c:\a d:\b\a\ >nul

3.复制C:\a文件夹内的所有东西到D:\b文件夹下面

【a文件夹不复制过去,只是把c,d这两个文件夹和e.txt这个文件复制过去】

xcopy /y /e /h c:\a d:\b\ >nul

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#ifdef BUFSIZ

#undef BUFSIZ

#define BUFSIZ 4096

#endif

/*

使用格式:mcpy 源文件 目标文件

且目标文件和源文件不能一样,否则会清空文件内容,

源文件必须存在,目标文件可存在也可不存在,如果存在,内容会被覆盖掉。

*/

int main(int argc,char **argv)

{

char buf[BUFSIZ]

int msglen

if(argc!=3||strcmp(argv[1],argv[2])==0)

/*argc:命令行模式下,输入的参数数目。

  argv:第一个参数的首地址。*/

{

fprintf(stderr,"********************************\n\n")

fprintf(stderr,"Please usage:%s source_file destination_file\nAnd source_file is different from destination_file\n\n",argv[0])

fprintf(stderr,"********************************\n")

exit(0)

}

FILE *fp_src,*fp_des

if((fp_src=fopen(argv[1],"r"))==NULL)

/*为空,则打开失败*/

{

fprintf(stderr,"open %s failed!\n",argv[1])

exit(1)

}

if((fp_des=fopen(argv[2],"w"))==NULL)

/*为空,则打开或创建失败*/

{

fprintf(stderr,"open/create %s failed!\n",argv[2])

exit(2)

}

while(fgets(buf,BUFSIZ,fp_src)!=NULL)

/*从源文件读,读失败或到达文件尾部时,返回NULL*/

{

if(fputs(buf,fp_des)==EOF)

/*写入目标文件,写入失败时,返回EOF;若成功返回写入的字节数*/

{

fprintf(stderr,"copy %s to %s failed!\n",argv[1],argv[2])

exit(3)

  }

}

printf("copy %s to %s successful!\n",argv[1],argv[2])

return 0

}

需要把复制的文件选定后,再用复制粘贴的方法。

在资源管理器窗口中选定文件后,用鼠标右键单击,在d出的快捷菜单中选择【复制】命令。这时表面上看来没有任何反应,实际上已经在剪贴板中记录了全部要复制的信息。

用鼠标右键单击要放置的目标盘或文件夹,单击d出的快捷菜单中的【粘贴】命令。复制之后粘贴之前,不能把被复制的文件或文件夹删除,因为剪贴板中只是记录了要复制的文件信息,即文件所在磁盘位置等,而不是文件的全部内容。一次复制的内容可以粘贴几次,直到下次的复制内容进入剪贴板中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11686644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存