第五讲:copy

copy 将一份或多份文件复制到另一个位置。
copy 只能复制文件用的,对于复制目录要用xcopy命令
在命令行下打copy /?可以了解到

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
[+ source [/A | /B] [+ ...]] [destination [/A | /B]]

source 指定要复制的文件。
/A 表示一个 ASCII 文本文件。
/B 表示一个二进位文件。
/D 允许解密要创建的目标文件
destination 为新文件指定目录和/或文件名。
/V 验证新文件写入是否正确。
/N 复制带有非 8dot3 名称的文件时,
尽可能使用短文件名。
/Y 不使用确认是否要改写现有目标文件
的提示。
/-Y 使用确认是否要改写现有目标文件
的提示。
/Z 用可重新启动模式复制已联网的文件。

命令行开关 /Y 可以在 COPYCMD 环境变量中预先设定。
这可能会被命令行上的 /-Y 替代。除非 COPY
命令是在一个批文件脚本中执行的,默认值应为
在改写时进行提示。

 
先来个小例子:

@echo off
copy c:\test\test.txt d:\

注意:当复制的文件路径含有空格或特殊字符如&,要使用双引号括起.
上面目标路径如没有指名文件名,则复制后的文件使用源文件名!

@echo off
rem 目标指名文件名,复制并改名
copy c:\test\test.txt d:\ts.txt

copy 的常用参数
/y 不使用确认是否要改写现有目标文件的提示。
当复制文件的目标路径文件名跟源文件名相同时,会提示是否要覆盖文件,这时使用y参数,表示覆盖文件不提示

@echo off
rem d盘下有test.txt文件,则会被覆盖不会提示
copy /y c:\test.txt d:\

对于批量复制文件时,不确定有没有同名文件时使用y参数就很方便了
/b 表示一个二进位文件。
copy 的另一功能是合并文件,可以将多个文件合并为一个新文件。
下面我们将多个空文件合并为一个新文件:

@echo off
rem 将空文件a.txt,b.txt,c.txt合并为d.txt
copy a.txt+b.txt+c.txt d.txt

运行上面的例子,会发现合并后的d.txt文件打开不是空的!
多了一个方框一样的符号.
这是由于copy 合并文件时的所使用的编码问题
一般我们使用b参数,以二进制的格式来合并文件就不会有问题啦

@echo off
copy /b a.txt+b.txt+c.txt d.txt

 copy 还可以与通配符的结合应用
? 号指任意的单一字符
* 号指任意的多个字符
假设c盘下存在三个文件:te.txt,tes.txt,test.txt
例1:

@echo off
rem ?号可代表一个任意字符,结果只复制tes.txt文件
copy c:\t?s.txt d:\

例2:

@echo off
rem *号可代表任意的多个字符,结果是复制所有t开头的txt文件
copy c:\t*.txt d:\

猜你喜欢

转载自yshlin.iteye.com/blog/1738025
今日推荐