Войти

Показать полную графическую версию : [решено] robocopy errorlevel


Страниц : [1] 2

Опиум
15-08-2016, 10:56
Столкнулся с ситуацией, когда возвращаемая ошибка не соответствует тому что происходило.

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.

Elven
15-08-2016, 11:26
а как спрашивался errorlevel? сильно похоже на ту же каку с маком на которую я одного раза напоролся: возвращался errorlevel не с той команды с которой ожидался.

Опиум
15-08-2016, 11:34
типа так:
robocopy ....
set roboerl=%errorlevel%
echo %roboerl% >>log.txt
if (%roboerl%)==(1) goto ok

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

Опиум
15-08-2016, 12:40
Elven, нет скобок.

Опиум
16-08-2016, 09:39
Странно.. пришел на почту ответ от Iska
а его тут нет (

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

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

Опиум
16-08-2016, 12:04
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, хотя в доке написано другое.

Iska
16-08-2016, 13:44
Опиум, расширенная обработка команд интерпретатором у Вас включена (по умолчанию включена, но всё же, всё же, всё же)?

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

Опиум
17-08-2016, 09:39
Iska, ноль выдаёт ((

Iska
17-08-2016, 13:44
Опиум, а с первым вопросом:
расширенная обработка команд интерпретатором у Вас включена »
?
Именно «[0]», не «[]», так?

Опиум
17-08-2016, 13:48
Iska, да [0]

Опиум
14-03-2017, 09:50
Честно, эта тема достала.
не срабатывает даже
robocopy /mir /r:1 /w:1 /np /nfl /ndl /log:%~dpn0_temp.txt c:\1C_BASE C:\1C_BASE_COPY\
if not errorlevel 1 (Echo No changes. >>%~dpn0_temp.txt & set skiprar=1)

Хотя чётко написано 0 No errors occurred, and no copying was done. The source and destination directory trees are completely synchronized.

Нашел забавную статью про errorlevel (http://blogs.msdn.microsoft.com/oldnewthing/20080926-00/?p=20743)

но не знаю, про мою беду она или нет...

Iska
14-03-2017, 09:57
Нашел забавную статью про errorlevel »
Что там забавного?

alpap
14-03-2017, 13:56
Опиум,
по коду в #13
прекрасно скопировался файл asd.txt из в и лог на рабочем столе соответствующий:


-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------

Начало: Tue Mar 14 12:52:18 2017

Источник : c:\1C_BASE\
Назначение : C:\1C_BASE_COPY\

Файлы: *.*

Параметры: *.* /NDL /NFL /S /E /COPY:DAT /PURGE /MIR /NP /R:1 /W:1

------------------------------------------------------------------------------


------------------------------------------------------------------------------

ВсегоСкопировано ПропущеноНесоответствие СБОЙДополнения
Каталогов : 1 0 1 0 0 0
Файлов : 1 1 0 0 0 0
Байт : 0 0 0 0 0 0
Время : 0:00:00 0:00:00 0:00:00 0:00:00

Окончание : Tue Mar 14 12:52:18 2017


not »
а, проглядел ... , м-да ...
явно "Ошибок не было, НО копирование производилось"

Опиум
14-03-2017, 16:54
Что там забавного » не ожидал неоднозначного раскрытия %errorlevel%
но не суть. Думал что статья про мою беду, оказалось нет.
По теме есть мысли?

проглядел.. »
вы тоже поняли что что-то не так.

alpap
14-03-2017, 18:29
По теме есть мысли? »
тут хоть мысли хоть не мысли, но реалии этого:

@echo off
robocopy /mir /r:1 /w:1 /np /nfl /ndl /log:"%~dpn0_temp.txt" "C:\1C_BASE" "C:\1C_BASE_COPY"
>>"%~dpn0_temp.txt" (
echo:
echo ...ошибка=%errorlevel%
)
pause


таковы:


-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------

Начало: Tue Mar 14 17:23:22 2017

Источник : C:\1C_BASE\
Назначение : C:\1C_BASE_COPY\

Файлы: *.*

Параметры: *.* /NDL /NFL /S /E /COPY:DAT /PURGE /MIR /NP /R:1 /W:1

------------------------------------------------------------------------------


------------------------------------------------------------------------------

ВсегоСкопировано ПропущеноНесоответствие СБОЙДополнения
Каталогов : 1 0 1 0 0 0
Файлов : 1 1 0 0 0 0
Байт : 0 0 0 0 0 0
Время : 0:00:00 0:00:00 0:00:00 0:00:00

Окончание : Tue Mar 14 17:23:22 2017

Копируем файл, ошибка=1


-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------

Начало: Tue Mar 14 17:24:00 2017

Источник : C:\1C_BASE\
Назначение : C:\1C_BASE_COPY\

Файлы: *.*

Параметры: *.* /NDL /NFL /S /E /COPY:DAT /PURGE /MIR /NP /R:1 /W:1

------------------------------------------------------------------------------


------------------------------------------------------------------------------

ВсегоСкопировано ПропущеноНесоответствие СБОЙДополнения
Каталогов : 1 0 1 0 0 0
Файлов : 1 0 1 0 0 0
Байт : 0 0 0 0 0 0
Время : 0:00:00 0:00:00 0:00:00 0:00:00

Окончание : Tue Mar 14 17:24:00 2017

Файл уже скопирован, присутствует, ошибка=0

Iska
14-03-2017, 18:46
не ожидал неоднозначного раскрытия %errorlevel% »
Простите, всё равно не понял про неоднозначность. Можете прямо процитировать?

Опиум
14-03-2017, 19:38
alpap, ты хочешь сказать что у тебя все ок? робокопи..из под какой версии windows?

Опиум
14-03-2017, 19:56
Есть подозрение что все дело в разных версиях robocopy, простигосподи.
вот некорректная работа (под w2003):
C:\batch>robocopy /nfl c:\batch c:\batch\cmd *.cmd && echo ****

-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows :: Version XP026
-------------------------------------------------------------------------------

Started : Tue Mar 14 19:50:12 2017

Source : c:\batch\
Dest : c:\batch\cmd\

Files : *.cmd

Options : /NFL /COPY:DAT /R:1000000 /W:30

------------------------------------------------------------------------------

New Dir 15 c:\batch\

------------------------------------------------------------------------------

Total Copied Skipped Mismatch FAILED Extras
Dirs : 1 1 0 0 0 0
Files : 15 15 0 0 0 0
Bytes : 10.7 k 10.7 k 0 0 0 0
Times : 0:00:00 0:00:00 0:00:00 0:00:00

Speed : 233936 Bytes/sec.
Speed : 13.385 MegaBytes/min.

Ended : Tue Mar 14 19:50:12 2017
****

C:\batch>robocopy /nfl c:\batch c:\batch\cmd *.cmd && echo ****

-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows :: Version XP026
-------------------------------------------------------------------------------

Started : Tue Mar 14 19:51:03 2017

Source : c:\batch\
Dest : c:\batch\cmd\

Files : *.cmd

Options : /NFL /COPY:DAT /R:1000000 /W:30

------------------------------------------------------------------------------

15 c:\batch\

------------------------------------------------------------------------------

Total Copied Skipped Mismatch FAILED Extras
Dirs : 1 0 1 0 0 0
Files : 15 0 15 0 0 0
Bytes : 10.7 k 0 10.7 k 0 0 0
Times : 0:00:00 0:00:00 0:00:00 0:00:00

Ended : Tue Mar 14 19:51:03 2017
****

таже команда, выполненная из под w7, звездочки выподит только при 2-м запуске.




© OSzone.net 2001-2012