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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] robocopy errorlevel

Ответить
Настройки темы
CMD/BAT - [решено] robocopy errorlevel

Ветеран


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

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


Столкнулся с ситуацией, когда возвращаемая ошибка не соответствует тому что происходило.

Код: Выделить весь код
   ROBOCOPY     ::     Robust File Copy for Windows     ::     Version XP026
-------------------------------------------------------------------------------
  Started : Mon Aug 15 05:47:13 2016
   Source : C:\DDATA_RAR\
     Dest : \\dc01\f$\1c\
    Files : ddata_2_20160815035423122.rar
  Options : /FFT /COPY:DAT /NP /IPG:10 /R:5 /W:5 
------------------------------------------------------------------------------
	                   1	C:\DDATA_RAR\
	    New File  		  14.1 g	ddata_2_20160815035423122.rar
2016/08/15 07:04:28 ERROR 64 (0x00000040) Copying File C:\DDATA_RAR\ddata_2_20160815035423122.rar
The specified network name is no longer available.

Waiting 5 seconds... Retrying...
	    New File  		  14.1 g	ddata_2_20160815035423122.rar
2016/08/15 08:28:38 ERROR 64 (0x00000040) Copying File C:\DDATA_RAR\ddata_2_20160815035423122.rar
The specified network name is no longer available.

Waiting 5 seconds... Retrying...
	    New File  		  14.1 g	ddata_2_20160815035423122.rar

------------------------------------------------------------------------------
                Total    Copied   Skipped  Mismatch    FAILED    Extras
     Dirs :         1         0         1         0         0         0
    Files :         1         1         0         0         0         0
    Bytes :  14.182 g  14.182 g         0         0         0         0
    Times :   4:18:24   4:18:14                       0:00:09   0:00:00
    Speed :              982798 Bytes/sec.
    Speed :              56.236 MegaBytes/min.
    Ended : Mon Aug 15 10:05:38 2016
вернул errorlevel=0, хотя по документации 0 возврящается, когда не было копирования.
я ожидал errorlevel=1 (успешное копирование)

Цитата:
Return Code
The return code from Robocopy is a bit map, defined as follows:
Hex Bit Value Decimal Value Meaning If Set
16 Serious error. Robocopy did not copy any files. This is either a usage error or an error due to insufficient access privileges on the source or destination directories.
8 Some files or directories could not be copied (copy errors occurred and the retry limit was exceeded). Check these errors further.
4 Some Mismatched files or directories were detected. Examine the output log. Housekeeping is probably necessary.
2 Some Extra files or directories were detected. Examine the output log. Some housekeeping may be needed.
1 One or more files were copied successfully (that is, new files have arrived).
0 No errors occurred, and no copying was done. The source and destination directory trees are completely synchronized.

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 10:56, 15-08-2016

 

Аватара для Elven

Ветеран


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

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


а как спрашивался errorlevel? сильно похоже на ту же каку с маком на которую я одного раза напоролся: возвращался errorlevel не с той команды с которой ожидался.

Отправлено: 11:26, 15-08-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


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

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


типа так:
Код: Выделить весь код
robocopy ....
set  roboerl=%errorlevel%
echo %roboerl% >>log.txt
if (%roboerl%)==(1) goto ok

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 11:34, 15-08-2016 | #3


Аватара для Elven

Ветеран


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

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


Вроде как все хорошо и красиво. Должно работать как и запрошено. Разве что еще одно уточнение: дополнительных условий или циклов нет перед приведенным куском кода? Т.е. robocopy set echo if не в скобках? Если есть скобки то придется SETLOCAL ENABLEDELAYEDEXPANSION и спрашивать не %errorlevel% а !errorlevel!

Отправлено: 12:13, 15-08-2016 | #4


Ветеран


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

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


Elven, нет скобок.

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 12:40, 15-08-2016 | #5


Ветеран


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

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


Странно.. пришел на почту ответ от Iska
а его тут нет (

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 09:39, 16-08-2016 | #6


Ветеран


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

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


Опиум, Iska вчера явно перетрудился и начал пороть чушь. Спустя некоторое время он сие осознал и удалил своё сообщение. Потому уведомление есть, а сообщения (для пользователей, администраторы и модераторы его могут видеть) уже нет.

Попробуйте показать весь Ваш код.

Отправлено: 11:57, 16-08-2016 | #7


Ветеран


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

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


Iska, ок, понял)

весь код незамысловат, но не играет роли, он достаточно плоский.
переделал так:
Код: Выделить весь код
ren \\dc01\f$\1c\ddata_*.rar *.old
robocopy /FFT /r:5 /w:5 /IPG:10 C:\DDATA_RAR \\dc01\f$\1c %rarname%.rar /np /log+:%~dpn0_log.txt
set usberr=%errorlevel%
echo Copy to usb err: %usberr% >>%~dpn0_log.txt

if %usberr% LSS 2 del \\dc01\f$\1c\ddata_*.old >>%~dpn0_log.txt
но, повторяю, мне не нравится что errorlevel=0, хотя в доке написано другое.

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 12:04, 16-08-2016 | #8


Ветеран


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

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


Опиум, расширенная обработка команд интерпретатором у Вас включена (по умолчанию включена, но всё же, всё же, всё же)?

Добавьте:
Код: Выделить весь код
echo [%errorlevel%]
set usberr=%errorlevel%
и посмотрите вывод.

Отправлено: 13:44, 16-08-2016 | #9


Ветеран


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

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


Iska, ноль выдаёт ((

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 09:39, 17-08-2016 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] robocopy errorlevel

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Корректное возвращение Errorlevel hunk3r Скриптовые языки администрирования Windows 13 25-05-2015 18:56
CMD/BAT - robocopy. затупил Опиум Скриптовые языки администрирования Windows 4 15-04-2015 10:13
VBS/WSH/JS - [решено] зависает robocopy Опиум Скриптовые языки администрирования Windows 10 09-10-2014 16:00
errorlevel msp sov44 Хочу все знать 15 29-07-2013 12:17
Cmd Параметр ERRORLEVEL storm2005 Microsoft Windows NT/2000/2003 1 30-03-2007 18:49




 
Переход