|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка выполнения xcopy |
|
CMD/BAT - [решено] Проверка выполнения xcopy
|
Новый участник Сообщения: 34 |
День добрый!
Существует батник с такой строкой копирует с заменой на более новые файлы *.dpr в общую папку и записывает результат в лог. Появилась необходимость совершить еще пару действий, но если файлы были скопированы. Если ничего не копировалось то завершить батник. Есть еще вариант, который меня очень устроит. Пока сделал так чтоб результат писал во временный файл tmp.log, содержимое которого потом добавляется в %~n0.log. Если файлы не скопированы то в tmp.log будет запись "скопировано файлов 0" и размер файла получается 24 байта. Вопрос - как проверить размер файла. Что-то типа if размер tmp.log = 24 goto end Есть какие команды на проверку размера файла? |
|
Отправлено: 10:35, 31-03-2011 |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:42, 31-03-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить 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 Здесь эта ситуация не учтена |
------- Последний раз редактировалось megaloman, 31-03-2011 в 20:13. Отправлено: 20:02, 31-03-2011 | #3 |
Новый участник Сообщения: 34
|
Профиль | Отправить PM | Цитировать Спасибо за советы, сделал вот так
echo %date% %time% %username% %computername% >> %~n0.log rem копирует новые файлы на общий ресурс и записывает результат во временный файл xcopy /d /v /y /z "*.dpr" "\\serv\programs\All" > tmp.log rem добавляет результат в общий лог 1>>%~n0.log type tmp.log rem проверяет наличие строки о количестве скопированных файлов и если находит строку "Скопировано файлов: 0." то идет на выход For /F "usebackq delims=" %%i in (tmp.log) do if "%%i"=="Скопировано файлов: 0." goto end |
Отправлено: 08:12, 01-04-2011 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Проверка на выполнения команд в bat ? | men232 | Скриптовые языки администрирования Windows | 4 | 12-01-2011 22:23 | |
[решено] Проверка выполнения нескольких условий | Smokie_id11243755 | AutoIt | 6 | 05-09-2010 07:19 | |
CMD/BAT - [решено] нельзя назвать батник делающий xcopy, xcopy.bat почему ? | foxbat | Скриптовые языки администрирования Windows | 3 | 17-09-2009 05:33 | |
В XCOPY не работает EXCLUDE | AlexKKK | Microsoft Windows NT/2000/2003 | 3 | 15-02-2008 14:52 | |
[решено] использование команды xcopy | maslinaV | Хочу все знать | 3 | 29-06-2006 19:45 |
|