批处理之家's Archiver

namejm 发表于 2008-12-21 14:29

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

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

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

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

  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命令
[url]http://bbs.bathome.net/thread-22-1-1.html[/url][code]copy /b 1.txt+nul[/code][code]copy /b 1.txt+,,[/code]

heng520 发表于 2008-12-21 15:11

复习了一下。。
copy  比较简单。

zjw767676 发表于 2008-12-21 21:23

刚做了个文件,复制文件到“program files"文件夹。老是提醒“无效的参数”原来是没加引号的原因!!学习了xx

coolhui 发表于 2009-1-1 23:50

呵呵~~~不错哦,复习了下,等待楼主介绍xcopy哦,很想了解这个·~~~

wolhh 发表于 2009-1-21 13:21

期待更多的教程~~~~

zhangenming 发表于 2009-1-25 15:50

[quote]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目录下。
[/quote]


这不就相当于文本合并器啊……
牛!!!!!!!!

whedu 发表于 2009-2-24 12:30

学习完毕,有新的知识点

jwq 发表于 2009-3-5 15:07

[quote]原帖由 [i]zhangenming[/i] 于 2009-1-25 15:50 发表 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=19623&ptid=2863][img]http://www.bathome.net/images/common/back.gif[/img][/url]



这不就相当于文本合并器啊……
牛!!!!!!!! [/quote]


貌似内容不能合并起来的撒

Batcher 发表于 2009-3-5 16:10

回复 8楼 的帖子

能。
如果你不能,可能是你的代码写错了。

skyinheaven 发表于 2009-3-7 20:44

copy还能改变文件属性吧?

stuqx 发表于 2009-3-8 15:24

文件属性貌似不能改吧   要用attrib

xiaofeixia 发表于 2009-3-30 22:17

copy 还可以建立文本文件
copy con abc.txt
可以输入内容,按ctrl  z保存推出

消失在风中 发表于 2009-3-31 20:46

[quote]原帖由 [i]jwq[/i] 于 2009-3-5 15:07 发表 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=22638&ptid=2863][img]http://bbs.bathome.net/images/common/back.gif[/img][/url]



貌似内容不能合并起来的撒 [/quote]


我刚才试过了,内容可以复制的哟!

kirk1234 发表于 2009-6-3 23:15

我试验了一下好像合并后的文件不全 我合并两个文本文件为一个 但是结果的那个文件没有包含两个文件的全部内容
前面两个文件大小分别为 1K 、25K ,合并后的那个文件大小只有1K.

dong1977 发表于 2009-6-4 09:56

刚才试验了完全可以正常复制,包括合并!

0428_hai 发表于 2009-6-6 14:09

我也有这个疑问啊,为什么像14楼说的那样,会有那种情况呢?
还有,用copy合并只限于txt文件吗?其他文件可以吗?
合并后怎么再分开呢?
若是能实现这个功能的话,那岂不是相当于对文件加了一层保护吗,可以变相利用。

wangxin016 发表于 2009-6-11 14:04

有个小小问题,为什么合并之后的文件最后一行多了一个“”,是一个黑方框

sansu 发表于 2009-7-30 19:30

具体的参数有哪些,我用 /s /q /y 提示不正确

a1061590679 发表于 2009-8-2 14:48

呵呵~~~不错哦,复习了下,等待楼主介绍xcopy哦,很想了解这个

yettybetty 发表于 2009-9-23 11:01

@echo off
echo学习ing
puase >nul

wt107 发表于 2009-9-29 09:48

想知道 是否能在拷贝的时候,如何加入自动判断时间?如 拷贝最新时间的文件,指定时间的文件 等~!

pumahxh 发表于 2009-10-14 23:59

大家好像没有注意到12说的办法哦
copy con abc.txt可以输入内容,按ctrl+Z保存退出。
在CMD里查看COPY帮助没有这条,“CON”在这里什么意思?
哪位帮忙解释下

abeltan 发表于 2009-10-28 10:57

从头学起, 这个都知道,有些细节还是要注意

wlc001 发表于 2009-12-4 17:25

初学者,学习中。谢谢楼主!

Longyunlangzi 发表于 2009-12-7 14:59

大长见识啊……
批处理命令果然厉害……

xiaosheng594 发表于 2010-4-6 04:06

楼主讲的很详细,
如果指定目录有相同的文件名称 可以在copy /-y

@echo off
copy /-y c:\1.txt+c:\2.txt d:\3.txt
exit

zjw767676 发表于 2010-4-19 22:18

有一点新手需要注意:
  在CMD中默认的是/-y参数,即要覆盖的话要加/y参数
而在批处理文件中默认的是/y参数,即不加参数也覆盖

补充一点:
copy A文件夹\ B文件夹\
将A文件夹内的文件全部复制到B文件夹下

[[i] 本帖最后由 zjw767676 于 2010-4-19 22:38 编辑 [/i]]

sharehb 发表于 2010-4-20 00:16

copy命令简单,没想到还有一些特殊的用法

咒夜坠 发表于 2010-4-27 11:08

copy命令特殊用法

c盘下有一个1.txt文件和一个1.jpg文件
键入 copy c:\1.txt/b+1.jpg/b /a c:\a.txt
图片不见了打开看见里面全是乱码在看看文本最下面原来TXT文本的内容还在里面
然后把a.txt改成a.jpg是不是还可以看

咒夜坠 发表于 2010-4-27 11:25

回复 22楼 的帖子

copy 命令格式:
copy [/y][/-y][/v][ /B]
copy /y 不加提示,对所有文件加以覆盖
/-y 加以提示,对所有文件 (yes或no提问 )
/v 拷贝以后加以校验
/B 按二进制进行显示
copy w1.wps con/b 可以将wps文件在屏幕上显示,而不必进入wps状态
copy ..\98 将父目录下的98子目录下的所有文件全拷到当前子目录
copy .\97 当当前目录下的97子目录下文件全部拷到当前目录
copy . c:\ 将当前目录下的所有文件拷到c盘根目录
. 意味着 *.* 文件
copy nul a.abc 将a.abc 文件清空(文件长度改为0)
copy 文件名+con 向文本文件中追加命令或内容
copy con 文件名 创建文本文件(F6存盘退出)
copy con prn 检测打印机的开关

本文转自快网([url]www.cnkuai.cn[/url]) , 原地址:[url]http://www.cnkuai.cn/news/20091/269.htm[/url]
是我刚才在网上查到的想不到一个小小的COPY命令还有如此功能不知道是否可以在其他命令中使用由于时间关系还请您多加试验与我们共同分享

页: [1] 2 3

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.