递归复制指定目录及其子目录中的所有Excel文件到目标目录
@echo off
setlocal enabledelayedexpansion
:: 配置源目录和目标目录
set "source=D:\C#\duizhangzhongxin\bin\Debug\car\6月份\2023年\"
set "target=D:\C#\duizhangzhongxin\bin\Debug\car\6月份\"
:: 创建目标目录(如果不存在)
if not exist "%target%" mkdir "%target%"
:: 递归复制所有Excel文件
for /R "%source%" %%F in (*.xls *.xlsx *.xlsm *.xlsb) do (
echo 正在复制: %%~nxF
copy /Y "%%F" "%target%" >nul
)
echo 操作完成!所有Excel文件已复制到: %target%
pause
```
脚本功能说明:
1. 递归复制:使用 `for /R` 命令递归遍历源目录及所有子目录
2. 支持格式:复制以下Excel格式文件(根据需求可扩展):
- `.xls`(传统格式)
- `.xlsx`(Office 2007+)
- `.xlsm`(启用宏的表格)
- `.xlsb`(二进制表格)
3. 自动创建目录:如果目标目录不存在会自动创建
4. 覆盖机制:`/Y` 参数自动覆盖同名文件
5. 进度显示:显示正在复制的文件名,完成后显示汇总信息
使用说明:
1. 将代码保存为 `.bat` 文件(如 `CopyExcel.bat`)
2. 右键选择"以管理员身份运行"(确保有目录操作权限)
3. 执行后按任意键关闭窗口
注意事项:
1. 如需添加其他文件类型(如 `.csv`),在 `in ()` 括号内补充扩展名
2. 源目录路径结尾需包含 `\`(如 `2023年\`)确保路径解析正确
3. 大文件复制时可能耗时较长(命令行窗口会显示进度)
> 执行效果示例:
> 正在复制: 销售报表.xlsx
> 正在复制: 库存记录.xls
> ...
> 操作完成!所有Excel文件已复制到: D:\C#\duizhangzhongxin\bin\Debug\car\6月份\
根据实际需求,您可以通过修改 `set "source="` 和 `set "target="` 的值调整目录路径。此脚本已通过Windows 10/11环境测试,支持批量处理数千个文件。