[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创] [批处理命令一日一教学](6)复制文件:copy

[一日一教学]批处理系列帖子索引 http://www.bathome.net/thread-2576-1-1.html

标题:一日一教学系列6_文件复制:copy
首发地址:http://bbs.bathome.net/topicadmin.php?tid=2863
首发日期:2008.12.21
更新日期:无

上一篇:流程跳转:goto  http://bbs.bathome.net/viewthread.php?tid=2574
下一篇:文件删除:del http://bbs.bathome.net/viewthread.php?tid=2962

  copy,中文含义为“复制”,一个很容易见名知意的命令,它的作用是复制文件,用法十分简单:copy 源文件 目的路径。

  假设,你需要把d:\test\test.txt这个文件复制到D盘根目录下,那么,使用 copy d:\test\test.txt d:\ 就可以轻易办到。

  当然,这是最简单的情形,在实际使用中,还是会碰到十分复杂的情况的。

  如果D盘根目录下已经存在了一个名为test.txt的文件,那么,复制过去的时候,copy命令就会提示你是覆盖原文件、是放弃复制还是覆盖所有文件。如果你在批量复制的时候,一概覆盖原文件,那么,一个一个地选择十分麻烦,这个时候,你可以使用不加提示就覆盖原文件的参数 /y (相当于自动选择了Yes选项),完整的命令为 copy /y d:\test\test.txt d:\ 。

  如果复制的时候,你还需要把源文件改个名,比如把test.txt改为1.txt的时候,可以直接使用:copy d:\test\test.txt d:\1.txt 这样的命令,也就是说,在指定目的路径的时候,直接指定文件名,那么,新的文件名就是源文件复制之后的名字。

  如果要复制的路径带有空格、&等特殊符号的时候,请使用引号把这些特殊字符括起来,比如: copy "d:\test abc\test.txt" "d:\t&est"

  copy命令除了“复制”文件的功能外,还有一个绝活:合并多个文件为一个文件,具体的格式为:copy 文件1+文件2+文件3+…… 目的路径\新文件名 。例如:copy d:\test.txt+d:\abc.txt d:\test\test.txt,那么,就把D盘根目录下的test.txt和abc.txt两个文件的内容合并为test.txt,并保存到d:\test目录下。

  copy 还有一些参数,但是常用的就上面的用法,更多的用法请在命令行窗口中使用 copy /? 来查询,很容易上手的。

  必须注意的是,copy只能复制文件,对于文件夹的复制,则需要另请高明,动用xcopy来复制。xcopy是copy的高级版本,有更丰富的参数,能实现更加复杂的功能,通吃文件和文件夹的复制,以后将另行介绍,在这里就不展开讲解了。

【补充】

把文件的最后修改时间更新为当前系统时间,类似于Linux系统的touch命令
http://bbs.bathome.net/thread-22-1-1.html
  1. copy /b 1.txt+nul
复制代码
  1. copy /b 1.txt+,,
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

经常忘记copy有特殊符号时,是需要引号的

TOP

进来学习一下。

TOP

还可以加一个知识点 copy 还支持通配符

TOP

貌似还能转换格式

TOP

学习了,十分感谢

TOP

回复 17# wangxin016


    把它用二进制格式保存文档可能好些。不容易出错。

TOP

回复 12# xiaofeixia


    这种用法,我在一本书上看到过。类似于重定向。

TOP

为什么我的  没出现覆盖提示呢

TOP

  1. md d:\1\
  2. cd d:\1\
  3. cd .>1.txt
  4. cd .>2.txt
  5. md /? > 1.txt
  6. cd /? > 2.txt
  7. copy .\1.txt + .\2.txt .\3.txt
复制代码

TOP

每日一学,谢谢

TOP

简而易懂,学习了

TOP

可是,如果有一堆txt文档要合并,要怎么办呢?
可以这样 if exist *.txt copy *.txt 5.txt
合并文档的顺序是按文档修改日期从早到晚
也可以 type *.txt>>5.txt
但是我不知道如何按指定顺序来,比如按文件名排序

TOP

@echo off
copy/y  C:\5.txt+c:\8.txt C:\4.txt
exit

TOP

@echo off
copy/y  C:\5.txt+c:\8.txt
exit

TOP

返回列表