标题: [文件操作] 【已解决】批处理怎么在多个子文件夹查找多个文件并复制到特定文件夹? [打印本页]
作者: 小小问号 时间: 2022-11-2 00:55 标题: 【已解决】批处理怎么在多个子文件夹查找多个文件并复制到特定文件夹?
本帖最后由 小小问号 于 2022-11-3 22:00 编辑
只知道文件名,但是不知道这些文件是在哪个目录,需要先查找到再拷贝,下面代码只能实现单个指定文件的查找拷贝,需要实现多个文件的查找拷贝
尝试过在前面加for循环如下,但是无法实现需求,求大神帮忙,谢谢
for /f %%i in (test.txt) do (
set searchFilename=%%i
指定文件夹层级如下: 当前需要拷贝的文件为1.sql、2.sql,文件名放在test.txt,实际会有几十上个文件需要查找拷贝
指定文件夹\1\1.sql
指定文件夹\2\2.sql
指定文件夹\3\3.sql- @echo off
- set searchFilename=1.sql
- set outputDir=C:\Users\peng\Desktop\bat\copy
- set sql=123
- for /f "tokens=*" %%a in (
- 'dir "%searchFilename%" /s /a /b'
- ) do (
- copy /y %%a %outputDir%
- echo %sql%>>%outputDir%\%searchFilename%
- )
- echo. & pause
复制代码
作者: hfxiang 时间: 2022-11-2 07:47
不知道文件夹的话,建议使用Everything( https://www.voidtools.com/zh-cn/ )解决你的需求
作者: qixiaobin0715 时间: 2022-11-2 08:19
本帖最后由 qixiaobin0715 于 2022-11-2 08:41 编辑
bat文件保存为ANSI编码:- @echo off
- setlocal enabledelayedexpansion
- set outputDir=C:\Users\peng\Desktop\bat\copy\
- for /f "delims=" %%a in (test.txt) do set _"%%a"=true
- for /f "delims=" %%i in ('dir /s /b /a-d') do if defined _"%%~nxi" copy "%%i" "%outputDir%"
复制代码
作者: 小小问号 时间: 2022-11-2 09:00
回复 3# qixiaobin0715
谢谢大佬,非常感谢,已经实现需求!
作者: aloha20200628 时间: 2022-11-2 12:07
findstr 还有一个参数 /g:"查找关键词列表文件.lst" 很厉害,可以一次性查找写在文件里的多个关键词,似乎正切合本题。代码简版如下》- @echo off &set "outputDir=C:\Users\peng\Desktop\bat\copy"
- for /f "delims=" %%F in ('dir/s/b/a-d^|findstr /g:"test.txt" ') do (copy /y "%%~F" "%outputDir%">nul)
复制代码
如果被搜索目录文件的数据量较大(成千上万或更多),可改用以下代码》- @echo off &set "outputDir=C:\Users\peng\Desktop\bat\copy"
- dir/s/b/a-d|findstr /g:"test.txt">tmpF.lst
- for /f "delims=" %%F in (tmpF.lst) do (copy /y "%%~F" "%outputDir%">nul)
- del/q tmpF.lst
复制代码
作者: 小小问号 时间: 2022-11-2 17:32
回复 5# aloha20200628
好的,谢谢大佬👍🏼
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |