复制命令(COPY)
copy 命令:
// 描述:
将一个或多个文件从一个位置复制到另一个位置。
### 注意:如果想复制文件夹,请使用 xcopy 。
// 语法:
copy [/a] [/b] [/d] [/v] [/n] [/z] [/y | /-y] <source> [/a] [/b] [<source> [/a] [/b] [+ ...]] [<destination> [/a] [/b]]
// 参数:
/a(ascii):
--> 表示一个ascii文本文件。
/b(binary):
--> 表示一个二进制文件。
/d(decrpyted):
--> 允许将复制的加密文件保存为目标位置的解密文件。
/v(verify):
--> 验证是否正确写入了新文件。
--> 如果无法验证写入操作,则会显示错误消息。 尽管复制时很少出现录制错误,但可以使用/v 验证是否已正确录制关键数据。
### 注意:/v 命令行选项也会降低复制命令的速度,因为必须检查磁盘上记录的每个扇区。
/n:
--> 在复制名称长度超过八个字符的文件或文件扩展名超过三个字符的文件时,请使用短文件名。
/z:
--> 以可重新启动的模式复制网络文件。
--> 如果在复制阶段连接丢失(例如,如果服务器脱机会断开连接),则在重新建立连接后将继续复制 /z。 /z 还显示为每个文件完成的复制操作的百分比。
/y /-y:
--> 如果在copycmd环境变量中预设了 /y,则可以在命令行使用 /-y 覆盖此设置。 默认情况下,除非在批处理脚本中执行复制命令,否则在替换此设置时会提示您。
// 注意:
--> 要复制目录的所有文件和子目录,请使用xcopy命令。
--> 您可以复制使用文件结束符(ctrl + z)的ascii文本文件来指示文件的结尾。
--> 要附加文件,请为destination指定单个文件,为source指定多个文件(使用通配符或file1 + file2 + file3格式)。
--> 可以将设备名称替换为一次或多次出现的源或目标。
--> 当destination是设备(例如,com1或lpt1)时,/b 以二进制模式将数据复制到设备。 在二进制模式下,copy /b 将所有字符
(包括特殊字符,如ctrl + c,ctrl + s,ctrl + z和enter)复制到设备作为数据。 但是,如果省略/b,则数据将以ascii模式复制到设备。
在ascii模式下,特殊字符可能会导致文件在复制过程中合并。
--> 如果未指定目标文件,则会创建与原始文件具有相同名称,修改日期和修改时间的副本。 新副本存储在当前驱动器的当前目录中。
如果源文件位于当前驱动器和当前目录中,并且您没有为目标文件指定其他驱动器或目录,则copy命令将停止并显示以下错误消息:
----------------------------------
c:\users\administrator>copy a.txt
文件无法自身复制。
已复制 0 个文件。
----------------------------------
--> 如果在source中指定了多个文件,则copy会使用destination中指定的文件名将它们全部合并到一个文件中。 除非使用 /b 选项,否则复制假定组合文件是ascii文件。
--> 复制不会复制0字节长的文件。 使用xcopy复制这些文件。
--> 如果要在不修改文件的情况下将当前时间和日期分配给文件,请使用以下语法:
------------------------
copy /b <source> +,,
------------------------
### "逗号" 表示省略了 destination 参数
// 实例:
// 在当前目录中简单的复制:
--------------------------------------------------
c:\users\administrator\cmd>echo a > a.txt
c:\users\administrator\cmd>copy a.txt b.txt
已复制 1 个文件。
c:\users\administrator\cmd>dir
驱动器 c 中的卷是 windows10
卷的序列号是 0d7b-113b
c:\users\administrator\cmd 的目录
2018-08-15 10:41 <dir> .
2018-08-15 10:41 <dir> ..
2018-08-15 10:41 4 a.txt
2018-08-15 10:41 4 b.txt
2 个文件 8 字节
2 个目录 19,742,240,768 可用字节
--------------------------------------------------
// 把其他目录中的文件复制到当前目录中来:
--------------------------------------------------
c:\users\administrator\cmd>copy d:\c.txt
已复制 1 个文件。
c:\users\administrator\cmd>dir
驱动器 c 中的卷是 windows10
卷的序列号是 0d7b-113b
c:\users\administrator\cmd 的目录
2018-08-15 10:50 <dir> .
2018-08-15 10:50 <dir> ..
2018-08-15 10:49 4 a.txt
2018-08-15 10:49 4 b.txt
2018-08-15 10:27 0 c.txt
3 个文件 8 字节
2 个目录 19,739,402,240 可用字节
c:\users\administrator\cmd>
-----------------------------------------------------
// 把当前目录中的文件复制到其他目录中去:
-----------------------------------------------------
c:\users\administrator\cmd>copy a.txt d:\lofter\
已复制 1 个文件。
-----------------------------------------------------
// 合并文本文件:
-----------------------------------------------------
c:\users\administrator\cmd>copy a.txt + b.txt c.txt
a.txt
b.txt
已复制 1 个文件。
c:\users\administrator\cmd>dir
驱动器 c 中的卷是 windows10
卷的序列号是 0d7b-113b
c:\users\administrator\cmd 的目录
2018-08-15 11:00 <dir> .
2018-08-15 11:00 <dir> ..
2018-08-15 10:49 4 a.txt
2018-08-15 10:49 4 b.txt
2018-08-15 11:00 9 c.txt
3 个文件 17 字节
2 个目录 19,740,422,144 可用字节
------------------------------------------------------
// 合并二进制文件:
------------------------------------------------------
c:\users\administrator\cmd>copy /b d:\cloudmusic\1.mp3 + d:\cloudmusic\2.mp3 3.mp3
d:\cloudmusic\1.mp3
d:\cloudmusic\2.mp3
已复制 1 个文件。
### 虽然可以合并,但是合并后的这个 3.mp3 文件并不能打开。所以好像没什么作用啊!
###
### 警告:
### 如果组合二进制文件,由于内部格式化,生成的文件可能无法使用。
------------------------------------------------------
// 复制远程主机上的共享文件。
------------------------------------------------------
c:\users\administrator\cmd>copy \\172.17.161.253\软件\2345\2345minipack.ini /z /v
覆盖 c:\users\administrator\cmd\2345minipack.ini 吗? (yes/no/all): y
100% 已复制 已复制 1 个文件。
------------------------------------------------------
// 还有一个高级的功能就是可以隐藏文本文件
------------------------------------------------------
c:\users\administrator\cmd>copy 1.mp3 /b + a.txt /a 1a.mp3
1.mp3
a.txt
已复制 1 个文件。
### 把音频或图片文件跟文本文件合并在一起后,用记事本打开,文本的内容可以在记事本的最后看到。
------------------------------------------------------