Будет вот так (насколько я понял):
- в переменную
List - имя файла (и путь к нему при необходимости) со списком копируемых файлов
- в переменную
Dst - каталог, куда копировать файлы (на конце знак "\").
- копируется из текущего каталога (откуда произведен запуск) с подкаталогами.
Код:

@echo off
SetLocal EnableExtensions
Set List=baselist.txt
Set Dst=C:\TEMP\
if not exist %List% (
echo List-file not found!
exit 1
)
Set log="%~dpn0.log"
Set tmp="%~dpn0.tmp"
Set wrk="%~dpn0.lst"
echo ======= %date% %time:~0,8% =======>>%log%
del /f %wrk% 2>nul
dir /a /b /on /s>%tmp%
for /f "usebackq tokens=* delims=" %%F in ("%List%") do findstr /c:"%%F" %tmp%>>%wrk%
for /f "usebackq tokens=* delims=" %%F in (%wrk%) do (
copy /b /y "%%F" "%Dst%" >nul 2>nul
if errorlevel 1 (echo Can`t copy %%F to "%Dst%">>%log%) else (echo File %%F copied>>%log%)
)
del /f %tmp%
del /f %wrk%
ЗЫ: Одноименные файлы при копировании перезатираются новыми и в логе это не отражается (такая проверка потребует некоторого усложнения алгоритма).