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

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

Ветеран


Contributor


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

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


Вот вариант с лог-файлом. Способ не универсальный, особенно если язык не русский. Тогда надо правильно прописать ключевое слово, здесь это
Скопировано файлов: 0.
Как вариант, можно смотреть последние 4 символа, но я это не сделал, мне кажется, это не надёжнее
Код: Выделить весь код
cls
@Echo Off
Set Otkuda="*.dpr"
Set Kuda="\\serv\programs\All"
Set Slovo="Скопировано файлов: 0."

Echo ------- %Date%   %Time% ------- >>%~n0.log
Set L=True
FOR /F "usebackq delims=" %%i IN (`XCOPY /d /s %Otkuda% %Kuda%`) DO Call :LogFile "%%i"
If %L%==False GoTo :Eof

rem Здесь делаем нечто в случае если файлы скопированы
rem --------------------------------------------------
Echo Файлы скопированы
rem --------------------------------------------------
GoTo :Eof

:LogFile
Echo %~1 >>%~n0.log
If %1==%Slovo% Set L=False
При работе xcopy возможна еще неприятность: а что делать, если какой-то файл не скопировался, например, был занят? (кстати, неплохо бы еще добавить ключ /C в Xcopy). При этом %Errorlevel% NEQ 0
Здесь эта ситуация не учтена

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 31-03-2011 в 20:13.


Отправлено: 20:02, 31-03-2011 | #3