Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] robocopy errorlevel (http://forum.oszone.net/showthread.php?t=317838)

Опиум 15-08-2016 10:56 2659971

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

Код:

  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 2659996

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

Опиум 15-08-2016 11:34 2660002

типа так:
Код:

robocopy ....
set  roboerl=%errorlevel%
echo %roboerl% >>log.txt
if (%roboerl%)==(1) goto ok


Elven 15-08-2016 12:13 2660025

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

Опиум 15-08-2016 12:40 2660035

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

Опиум 16-08-2016 09:39 2660296

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

Iska 16-08-2016 11:57 2660349

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

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

Опиум 16-08-2016 12:04 2660354

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 2660394

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

Добавьте:
Код:

echo [%errorlevel%]
set usberr=%errorlevel%

и посмотрите вывод.

Опиум 17-08-2016 09:39 2660638

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

Iska 17-08-2016 13:44 2660702

Опиум, а с первым вопросом:
Цитата:

Цитата Iska
расширенная обработка команд интерпретатором у Вас включена »

?

Именно «[0]», не «[]», так?

Опиум 17-08-2016 13:48 2660705

Iska, да [0]

Опиум 14-03-2017 09:50 2719236

Честно, эта тема достала.
не срабатывает даже
Код:

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

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

Iska 14-03-2017 09:57 2719239

Цитата:

Цитата Опиум
Нашел забавную статью про errorlevel »

Что там забавного?

alpap 14-03-2017 13:56 2719324

Опиум,
по коду в #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 2719411

Цитата:

Цитата Iska
Что там забавного »

не ожидал неоднозначного раскрытия %errorlevel%
но не суть. Думал что статья про мою беду, оказалось нет.
По теме есть мысли?

Цитата:

Цитата alpap
проглядел.. »

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

alpap 14-03-2017 18:29 2719449

Цитата:

Цитата Опиум
По теме есть мысли? »

тут хоть мысли хоть не мысли, но реалии этого:
Код:

@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 2719453

Цитата:

Цитата Опиум
не ожидал неоднозначного раскрытия %errorlevel% »

Простите, всё равно не понял про неоднозначность. Можете прямо процитировать?

Опиум 14-03-2017 19:38 2719475

alpap, ты хочешь сказать что у тебя все ок? робокопи..из под какой версии windows?

Опиум 14-03-2017 19:56 2719480

Есть подозрение что все дело в разных версиях 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-м запуске.

alpap 14-03-2017 20:43 2719494

Цитата:

Цитата Опиум
из под какой версии windows? »

Microsoft Windows 7 Ultimate 6.1.7601 Service Pack 1 сборка 7601 Multiprocessor Free (32-bit)
ничего не резалось не менялось из родного подвеса

Опиум 14-03-2017 20:50 2719496

разобрался. вот https://www.winvistatips.com/threads...rlevel.567309/


Время: 13:08.

Время: 13:08.
© OSzone.net 2001-