永发信息网

bat 批量查找文件拷贝:怎样从TXT文件中读取文件名查找然后拷贝,查找的文件范围在根目录和子目录中都有

答案:3  悬赏:0  手机版
解决时间 2021-03-19 15:28
  • 提问者网友:暗中人
  • 2021-03-19 10:23
例如我需要查找的文件名集合为123.TXT,里面内容为第一行:AA;第二行为BB;依次类推
在另外一个文件夹DATA下有大量TXT文件,包含AA.TXT,BB.TXT,可能子文件夹中还有CC.TXT.请问怎样写BAT文件通过将123里面的文件名,查找出文件复制出来
最佳答案
  • 五星知识达人网友:拾荒鲤
  • 2021-03-19 11:34
@echo off
for /f "delims=" %%i in (123.TXT) do (
for /f "usebackq" %%j in (`dir /a-d /b /s DATA\`) do (
if /i "%%~nxj"=="%%i.txt" (
xcopy %%j C:\Users\Administrator\Desktop
)))

不知你电脑上这些文件是什么情况,这里的条件是:123.txt和data同在一个目录下,而且在data中不能有同名文件,否则复制到另一个地方时会提示让覆盖,搜索到的文件复制到的目录这里是桌面,bat要放在123.txt和data所在目录中运行。
全部回答
  • 1楼网友:慢性怪人
  • 2021-03-19 12:39
假设你的文件名集合在C:\TEST\下,程序将要拷贝到D:\BACKUP下: @echo off FOR /R D:\DATA %%I IN (C:\TEST\123.TXT) DO ( IF EXIST %%I COPY %%I D:\BACKUP )
  • 2楼网友:一叶十三刺
  • 2021-03-19 11:41
@echo off set "filename=d:\filename.txt" set "filedir=d:" for /f "delims=" %%a in ('type "%filename%"') do (     for /f "delims=" %%b in ('dir /a-d/b/s %diledir%\%%a') do (         echo %%b         ) ) echo end... pause
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯