Windows 自带的快速移动文件命令
- move 命令(CMD)
move 源文件 目标路径示例:
# 移动单个文件 move "D:\test\file.txt" "E:\backup\" # 移动并重命名 move "D:\test\file.txt" "E:\backup\newname.txt" # 移动所有 .txt 文件 move "D:\test\*.txt" "E:\backup\" - robocopy 命令(推荐,更强大)
robocopy 源目录 目标目录 文件名 /MOVE示例:
# 移动整个目录(含子目录) robocopy "D:\test" "E:\backup" /E /MOVE # 只移动 .txt 文件 robocopy "D:\test" "E:\backup" *.txt /MOVE # /MOVE = 移动(复制后删除源);/E = 包含空目录和子目录 - PowerShell 的 Move-Item
Move-Item "D:\test\file.txt" "E:\backup\" Move-Item "D:\test\*.txt" "E:\backup\"
对比
| 命令 |速度 | 跨盘符 | 适用场景 | | - | - | - | - | | move | 快 | 同盘秒移、跨盘复制删除 | 简单移动 | | robocopy | 最快 | 支持断点续传、多线程 | 大批量/大文件 | | Move-Item | 中 | 支持 | 脚本化场景 |
关键点:同盘符内移动是”秒移”(只改路径不复制数据),跨盘符必须复制+删除。大批量文件推荐用 robocopy /MOVE,速度最快且稳定。
move 命令参数
move [/Y | /-Y] [源] [目标]
| 参数 | 说明 | | - | - | | /Y | 取消确认提示,直接覆盖同名文件 | | /-Y | 强制确认提示(默认行为)
详细参数
move 参数很少,主要就这两个。跨盘符移动时不能用 /Y 批量覆盖。
robocopy 常用参数(最丰富)
复制选项
| 参数 | 说明 |
|---|---|
| /S | 复制子目录,不包含空目录 |
| /E | 复制子目录,包含空目录(最常用) |
| /MOVE | 移动文件(复制后删除源) |
| /COPY:DAT | 复制 Data/Attributes/Timestamps(默认) |
| /COPYALL | 复制所有信息(含 ACL、所有者等) |
| /NOCOPY | 不复制内容(只做目录结构镜像) |
覆盖与重试
| 参数 | 说明 |
|---|---|
| /IS | 包含相同文件(默认跳过) |
| /IT | 包含已修改的相同文件 |
| /R:n | 失败重试次数(默认 100 万次,建议 /R:3) |
| /W:n | 重试间隔秒数(默认 30,建议 /W:1) |
| /XO | 排除较旧的文件(只更新新文件) |
| /XX | 排除源中已不存在的文件 |
性能与日志
| 参数 | 说明 |
|---|---|
| /MT:n | 多线程(n=1~128,默认 8,大幅提速) |
| /LOG:文件 | 输出日志到文件 |
| /NP | 不显示进度百分比(日志更干净) |
| /NDL | 不显示目录名(减少输出) |
| /TEE | 同时输出到屏幕和日志 |
过滤
| 参数 | 说明 |
|---|---|
| /XF *.tmp | 排除指定文件 |
| /XD temp | 排除指定目录 |
| /MIN:n | 只复制大于 n 字节的文件 |
| /MAX:n | 只复制小于 n 字节的文件 |
| /MINAGE:n | 只复制 n 天后修改的文件 |
| /MAXAGE:n | 只复制 n 天前修改的文件 |
实组合示例:
# 高速多线程移动 + 3次重试 + 日志
robocopy "D:\src" "E:\dst" /E /MOVE /MT:16 /R:3 /W:1 /LOG:move.log /NP
# 只移动 7 天内修改过的 .jpg
robocopy "D:\src" "E:\dst" *.jpg /S /MOVE /MINAGE:7
# 排除 .tmp 文件和 temp 目录
robocopy "D:\src" "E:\dst" /E /MOVE /XF *.tmp /XD temp
Move-Item 参数
Move-Item [-Path] <路径> [-Destination] <目标> [-Force] [-Filter] [-Include] [-Exclude] [-WhatIf] [-Confirm]
| 参数 | 说明 |
| - | - |
| -Force | 强制覆盖只读文件、隐藏文件 |
| -Filter | 按通配符过滤(如 *.txt) |
| -Include | 包含指定项(需配合 * 路径) |
| -Exclude | 排除指定项 |
| -WhatIf | 预演不执行(先看会发生什么) |
| -Confirm | 每步确认 |
| -PassThru | 输出移动后的对象 |
示例:
# 强制移动所有 .log,排除 error.log
Move-Item "D:\src\*.log" "E:\logs\" -Force -Exclude "error.log"
# 预演(不实际执行)
Move-Item "D:\src\*" "E:\dst\" -WhatIf
选择建议
| 场景 | 推荐 |
|---|---|
| 单个/少量文件,同盘 | move |
| 大批量、大文件、跨盘 | robocopy /MOVE /MT:16 /R:3 |
| 需要精细过滤、脚本化 | Move-Item |
| 需要日志和容错 | robocopy(独有) |
robocopy 是 Windows 下移动文件最强工具,参数最多,推荐优先使用。