copy 是什么
copy 是命令提示符下的文件复制命令,支持单个文件、通配符批量复制,以及把多个二进制分卷拼接成一个完整文件。它的能力边界很明确:只处理文件,不处理目录树,复制目录需要换用其它命令;同时它不复制访问控制权限与备用数据流,迁移到新位置后权限会按目标位置继承。知道这两点,就不会在需要保留权限或复制整棵目录时误用它。
基本信息
| 适用平台 | Windows CMD(PowerShell 中同名命令为别名,行为不同) |
|---|---|
| 语法 | copy [/y|/-y] [/v] [/b|/a] 源 目标;copy /b 分卷1+分卷2+… 输出文件 |
| 覆盖控制 | /y 覆盖不提示、/-y 覆盖前提示,行为还受环境变量中的默认策略影响 |
| 校验 | /v 写入后校验,速度略慢但能发现写入异常 |
| 模式 | /b 二进制模式、/a 文本模式,合并分卷时必须用二进制 |
| 能力边界 | 不复制目录树、不复制访问控制权限与备用数据流 |
典型使用场景
- 复制单个配置文件或程序文件到目标位置
- 用通配符把某类文件批量复制到归档目录
- 合并下载得到的二进制分卷,还原成完整文件
- 在脚本里做简单的文件备份,覆盖前显式控制提示行为
- 配合通配符与目录参数做日志归档
- 需要写后校验时加上校验参数确认文件完整性
常用示例
常用示例
:: 复制单个文件
copy D:\src\app.ini D:\dst\app.ini
:: 通配符批量复制,目标写成目录
copy D:\src\*.log D:\archive\
:: 覆盖不提示(脚本里推荐显式声明)
copy /y D:\src\app.ini D:\dst\app.ini
:: 写入后校验
copy /v D:\src\data.bin D:\dst\data.bin
:: 合并二进制分卷
copy /b part01.bin+part02.bin full.bin
:: 把多个文本文件合并成一个
copy /a a.txt+b.txt all.txt参数速查
| 参数 | 作用 | 注意点 |
|---|---|---|
| /y | 覆盖已存在文件不提示 | 脚本中显式声明最稳 |
| /-y | 覆盖前必须确认 | 交互场景使用,脚本里会挂住 |
| /v | 写入后校验 | 重要数据建议开启 |
| /b | 按二进制处理 | 合并分卷必须使用 |
| /a | 按文本处理 | 文本合并时用 |
| 目标为目录 | 保留原文件名 | 复制到目录比复制到具体路径更省事 |
目标写成目录时保留原文件名,写成完整路径则按新名字落盘。批量复制时目标必须是目录,否则通配符匹配到的多个文件会挤到同一个目标名上。
复制正在被写入的大文件(数据库、正在滚动的日志)会得到不完整副本,且不会报错。这类数据应先用卷影快照,或改用带重试与校验的复制工具。