Имя пользователя:
Пароль:
 

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

Googler


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

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


- обход файлов придется делать дважды: сначала для подсчета, потом для обработки;
- копировать файлы придется по одному (обновлять бар между копированием файлов)
- конкретная реализация зависит от условий копирования, пример (без процедуры :BAR):
Код: Выделить весь код
@Echo Off
Setlocal EnableDelayedExpansion

rem Каталог откуда копируем файлы
Set FROM=C:\_\_
rem Маска копируемых файлов
Set MASK=*.*
rem Каталог куда копируем файлы
Set DEST=C:\~\_
rem Число символов в прогрессбаре
Set N_Col=79
rem Число иттераций (файлов в моем случае) на 100% 
For /F "Delims=" %%i In ('DIR /B/S/A-D "%FROM%\%MASK%"^|Find /V /C ""') Do Set cntA=%%i
rem -----------------------------
Set cnt=0
Echo Обработка запущена
For /F "Delims=" %%i In ('DIR /B/S/A-D "%FROM%" 2^>Nul') Do (
Call :Work "%%i"
Call :Bar Обработано
)
rem -----------------------------
Echo.
Echo Обработка завершена
Pause>nul
Exit

:Work
Set "TO=%~1"
Call Set "TO=%%TO:%FROM%=%DEST%%%"
Echo F|XCopy /Q/Y "%~1" "%TO%" >Nul 2>>"%~dpn0.err"
GoTo :EOF

Отправлено: 10:15, 01-09-2010 | #2