博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

用XCOPY命令解决头文件复制时,相同文件也会重新复制一遍的问题

COPY  XCOPY

以下是xcopy自己的中文帮助:
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
                          [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                          [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
                          [/EXCLUDE:file1[+file2][+file3]...]

 source       指定要复制的文件。
 destination  指定新文件的位置和/或名称。
 /A           只复制有存档属性集的文件,
              但不改变属性。
 /M           只复制有存档属性集的文件,
              并关闭存档属性。
 /D:m-d-y     复制在指定日期或指定日期以后更改的文件。
              如果没有提供日期,只复制那些源时间
              比目标时间新的文件。
 /EXCLUDE:file1[+file2][+file3]...
              指定含有字符串的文件列表。每一个字符串
              必须在文件的单独行中。如果有任何
              字符串与要被复制的文件的绝对路径
              相符,那个文件将不会得到复制。
              例如,指定如 \obj\ 或 .obj 的字符串会排除
              目录 obj 下面的所有文件或带有
              .obj 扩展名的文件。
 /P           创建每个目标文件前提示。
 /S           复制目录和子目录,除了空的。
 /E           复制目录和子目录,包括空的。
              与 /S /E 相同。可以用来修改 /T。
 /V           验证每个新文件。
 /W           提示您在复制前按键。
 /C           即使有错误,也继续复制。
 /I           如果目标不存在,又在复制一个以上的文件,
              则假定目标一定是一个目录。
 /Q           复制时不显示文件名。
 /F           复制时显示完整的源和目标文件名。
 /L           显示要复制的文件。
 /G           允许将没有经过加密的文件复制到
              不支持加密的目标。
 /H           也复制隐藏和系统文件。
 /R           覆盖只读文件。
 /T           创建目录结构,但不复制文件。
              不包括空目录或子目录。/T /E 包括
              空目录和子目录。
 /U           只复制已经存在于目标中的文件。
 /K           复制属性。一般的 Xcopy 会重置只读属性。
 /N           用生成的短名复制。
 /O           复制文件所有权和 ACL 信息。
 /X           复制文件审核设置(隐含 /O)。
 /Y           复制文件审核设置(隐含 /O)。
              现存目标文件。
 /-Y          导致提示以确认改写一个
              现存目标文件。
 /Z            用重新启动模式复制网络文件。

命令行开关 /Y 可以预先在 COPYCMD 环境变量中设置。
这可能被命令行上的 /-Y 改写。




要是copy的话,就很简单了(当然他只能复制一个文件,不能复制目录,用+号是文件连接)
+号举例:
这是a.txt:(末尾有回车)
This is a.

这是b.txt:(末尾也有回车)
This is b.

执行
copy a.txt+b.txt c.txt
则c.txt内容为(理论)
This is a.
This is b.

其实我操作一下,发现c.txt中This is b.后面回车的一行有一个奇怪的字符,看上去像右键头(直接复制过来的,宋体+记事本看的,用type看,只是回车空行,这就是下文所述的Ctrl+Z的字符)
copy的参数不多。用处大的有/a和/b
/a是用ASCII字符复制文件(就像刚才的例子,适合文本,不指定的话默认就是用ASCII方式连接),特点是遇到一个用Ctrl+Z输入的字符时就停止此文件的复制,复制下一个(当然只能在cmd里用,在windows里是撤销)

/b是按二进制方式复制,直到一个文件全部复制完才复制下一个,适合严密的文件(比如有的主板破解oem vista就要用/b复制rom,不然会刷死的。Vista Loader也使用这种方式制作引导文件,不然会无法引导,引导文件出错,要用系统光盘恢复引导XP、vista)这样复制例子的两个文本,末尾没有那个字符,只是回车。
把a.rom和b.rom连接成c.rom
copy a.rom /b+b.rom/b c.rom
每个文件可以单独制定复制方式
把a.txt(按二进制复制)与b.txt(用ascii复制)连接成c.txt
copy a.txt/b+b.txt/a c.txt


还有和xcopy一样的/y和/-y,他们在批处理里用得比较多,/y每个文件都提示要不要复制,而/-y不提示,直接完成复制

copy可以指定复制后文件的文件名,xcopy不能
比如把a.txt复制到d盘,名字不改
copy a.txt d:
把a.txt复制到d盘,名字改成b.txt
copy a.txt d:\b.txt
可以使用相对或绝对路径

以下是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
命令是在一个批文件脚本中执行的,默认值应为
在改写时进行提示。

要附加文件,请为目标指定一个文件,为源指定
数个文件(用通配符或 file1+file2+file3 格式)。