假设你的文件名集合在C:\TEST\下,程序将要拷贝到D:\BACKUP下:
@echo off
FOR /R D:\DATA %%I IN (C:\TEST\123.TXT) DO (
IF EXIST %%I COPY %%I D:\BACKUP
)
@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所在目录中运行。