当前位置: 首页 > article >正文

windows bat 在目录下(包括子目录)搜索批量指定文件名称复制到另一个文件夹内

windows bat 在目录下(包括子目录)搜索批量指定文件名称复制到另一个文件夹内

前言:最近遇到一个需求,我有15个文件夹(可能包含子文件夹) ,目前我有一批文件名称,需要在这15个文件夹中查找出来,并拷贝到一个新的文件夹内,由于一个一个搜索拷贝比较麻烦,所以写了这么一段bat 代码来处理此事,效率提升几百倍,欢迎有需要的同学参考。如果有其他问题一讨论。
搜索文件名称列表:
1_d7b59495aaa24adc932c242d5570a57a_115.png
1_d7b59495aaa24adc932c242d5570a57a_176.png
1_d7b59495aaa24adc932c242d5570a57a_211.png
1_d7b59495aaa24adc932c242d5570a57a_212.png

需要在下面的文件夹中找到上面文件名称,复制到新的文件夹内,一个一个复制真要命 o(╥﹏╥)o
在这里插入图片描述

写了代码如下:

file_patterns.ini 内容如下

1_d7b59495aaa24adc932c242d5570a57a_115.png
1_d7b59495aaa24adc932c242d5570a57a_176.png
1_d7b59495aaa24adc932c242d5570a57a_211.png

file_search.bat 文件代码如下


@echo off
setlocal enabledelayedexpansion:: 内置路径参数 src 源端文件夹   dst目标文件夹
set "src=E:\0522"
set "dst=E:\bug1":: 配置文件路径 file_patterns.ini 跟 file_search.bat 在同一目录下
set CONFIG_FILE=file_patterns.ini:: 检查配置文件是否存在
if not exist "%CONFIG_FILE%" (echo 错误: 配置文件 %CONFIG_FILE% 不存在pauseexit /b 1
):: 读取文件模式
set "file_list="
for /f "usebackq delims=" %%a in ("%CONFIG_FILE%") do (if not "%%a"=="" (set "file_list=!file_list! "%%a"")
):: 验证必要参数
if not defined src (echo 错误: 缺少 source_dir 参数pauseexit /b 1
)if not defined file_list (echo 错误: 配置文件中没有有效的文件模式pauseexit /b 1
):: 创建目标目录(如果不存在)
mkdir "%dst%" 2>nul:: 执行批量复制
set counter=0
set not_found=0
for %%F in (%file_list%) do (echo 正在搜索文件: %%Fset "found=0"for /r "%src%" %%i in (%%~F) do (if exist "%%i" (echo 文件存在=====》正在复制: %%~nxicopy /y "%%i" "%dst%\" >nulecho %%~nxi 复制完成set /a counter+=1set "found=1"))if "!found!"=="0" (echo 文件不存在: %%Fset /a not_found+=1)
)echo 操作完成,共处理 !counter! 个文件,!not_found! 个文件未找到
pause

执行结果:

E:\>file_search.bat
正在搜索文件: "1_d7b59495aaa24adc932c242d5570a57a_115.png"
文件存在===》正在复制: 1_d7b59495aaa24adc932c242d5570a57a_115.png
正在搜索文件: "1_d7b59495aaa24adc932c242d5570a57a_176.png"
文件存在===》正在复制: 1_d7b59495aaa24adc932c242d5570a57a_176.png
正在搜索文件: "1_d7b59495aaa24adc932c242d5570a57a_211.png"
文件存在===》正在复制: 1_d7b59495aaa24adc932c242d5570a57a_211.png
操作完成,共处理 3 个文件
Press any key to continue . . .
't' is not recognized as an internal or external command,
operable program or batch file.
操作完成,共处理 3 个文件, 个文件未找到
Press any key to continue . . .
http://www.lryc.cn/news/2385148.html

相关文章:

  • Notepad++ 下载与安装教程(小白专属)
  • Spring Cloud Gateway 微服务网关实战指南
  • 微服务架构实战:Eureka服务注册发现与Ribbon负载均衡详解
  • 采用多维计算策略(分子动力学模拟+机器学习),显著提升 α-半乳糖苷酶热稳定性
  • 【java】小练习--零钱通
  • 旅游信息检索
  • 贝叶斯理论
  • Docker-mongodb
  • Gartner《Optimize GenAI Strategy for 4 Key ConsumerMindsets》学习心得
  • [ARM][汇编] 02.ARM 汇编常用简单指令
  • 达梦数据库-学习-22-库级物理备份恢复(超详细版)
  • python网络爬虫的基本使用
  • AI Agent开发第74课-解构AI伪需求的魔幻现实主义
  • 【卫星通信】通信卫星链路预算计算及其在3GPP NTN中的应用
  • HTTP请求方法:GET与POST的使用场景解析
  • 第十五章:数据治理之数据目录:摸清家底,建立三大数据目录
  • c++命名空间的作用及命名改编
  • Go核心特性与并发编程
  • echarts实现项目进度甘特图
  • Flutter 中 build 方法为何写在 StatefulWidget 的 State 类中
  • C#串口打印机:控制类开发与实战
  • 2025深圳国际无人机展深度解析:看点、厂商与创新亮点
  • Electron 后台常驻服务实现(托盘 + 开机自启)
  • Spring Boot与Kafka集成实践:从入门到实战
  • 人形机器人通过观看视频学习人类动作的技术可行性与前景展望
  • 第三十四天打卡
  • 打卡day35
  • 【【嵌入式开发 Linux 常用命令系列 19 -- linux top 命令的交互使用介绍】
  • 配置tomcat时,无法部署工件该怎么办?
  • .NET外挂系列:8. harmony 的IL编织 Transpiler