Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 426
Благодарности: 108

Профиль | Отправить PM | Цитировать


Будет вот так (насколько я понял):
- в переменную 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%
ЗЫ: Одноименные файлы при копировании перезатираются новыми и в логе это не отражается (такая проверка потребует некоторого усложнения алгоритма).

Отправлено: 19:18, 27-04-2010 | #2