1

I'm trying to robocopy some files between servers through control-m job and I want to abend this job if any file was copied.

I've tried use GOTO Quit and exit /b but seems that didn't work.

robocopy "C:\Temp\enviar" "C:\Temp\enviado"
@ECHO OFF
IF %ERRORLEVEL% EQU 16 ECHO ***FATAL ERROR*** & GOTO QUIT
IF %ERRORLEVEL% EQU 15 ECHO ***UM OU MAIS ARQUIVOS COPIADOS + FALHA NA COPIA DE ALGUM ARQUIVO + ARQUIVOS OU DIRETORIOS INCOMPATIVEIS + EXISTE ARQUIVOS NA PASTA DE DESTINO*** & GOTO QUIT
IF %ERRORLEVEL% EQU 14 ECHO ***FALHA NA COPIA DE ALGUM ARQUIVO + ARQUIVOS OU DIRETORIOS INCOMPATIVEIS + EXISTE ARQUIVOS NA PASTA DE DESTINO*** & GOTO QUIT
IF %ERRORLEVEL% EQU 13 ECHO ***UM OU MAIS ARQUIVOS COPIADOS + FALHA NA COPIA DE ALGUM ARQUIVO + ARQUIVOS OU DIRETORIOS INCOMPATIVEIS*** & GOTO QUIT
IF %ERRORLEVEL% EQU 12 ECHO ***FALHA NA COPIA DE ALGUM ARQUIVO + ARQUIVOS OU DIRETORIOS INCOMPATIVEIS*** & GOTO QUIT
IF %ERRORLEVEL% EQU 11 ECHO ***UM OU MAIS ARQUIVOS COPIADOS + FALHA NA COPIA DE ALGUM ARQUIVO + EXISTE ARQUIVOS NA PASTA DE DESTINO*** & GOTO QUIT
IF %ERRORLEVEL% EQU 10 ECHO ***FALHA NA COPIA DE ALGUM ARQUIVO + EXISTE ARQUIVOS NA PASTA DE DESTINO*** & GOTO QUIT
IF %ERRORLEVEL% EQU 9 ECHO ***UM OU MAIS ARQUIVOS COPIADOS + FALHA NA COPIA DE ALGUM ARQUIVO*** & GOTO QUIT
IF %ERRORLEVEL% EQU 8 ECHO ***FALHA NA COPIA DE ALGUM ARQUIVO*** & GOTO GOTO QUIT
IF %ERRORLEVEL% EQU 7 ECHO ***UM OU MAIS ARQUIVOS COPIADOS + ARQUIVOS OU DIRETORIOS INCOMPATIVEIS + EXISTE ARQUIVOS NA PASTA DE DESTINO*** & GOTO OK
IF %ERRORLEVEL% EQU 6 ECHO ***NENHUM ARQUIVO COPIADO + ARQUIVOS OU DIRETORIOS INCOMPATIVEIS + EXISTE ARQUIVOS NA PASTA DE DESTINO*** & GOTO QUIT
IF %ERRORLEVEL% EQU 5 ECHO ***UM OU MAIS ARQUIVOS COPIADOS + ARQUIVOS OU DIRETORIOS INCOMPATIVEIS + SEM FALHAS*** & GOTO OK
IF %ERRORLEVEL% EQU 4 ECHO ***NENHUM ARQUIVO COPIADO + ARQUIVOS OU DIRETORIOS INCOMPATIVEIS*** & GOTO QUIT
IF %ERRORLEVEL% EQU 3 ECHO ***UM OU MAIS ARQUIVOS COPIADOS + EXISTE ARQUIVOS NA PASTA DE DESTINO*** + SEM FALHAS & GOTO OK
IF %ERRORLEVEL% EQU 2 ECHO ***NENHUM ARQUIVO COPIADO + EXISTE ARQUIVOS NA PASTA DE DESTINO*** & GOTO QUIT
IF %ERRORLEVEL% EQU 1 ECHO ***UM OU MAIS ARQUIVOS COPIADOS SEM FALHAS*** & GOTO OK
IF %ERRORLEVEL% EQU 0 ECHO ***NENHUM ARQUIVO COPIADO*** & GOTO QUIT
:QUIT
exit /b
:OK
@ECHO ON

I expect that the control-m job stops running in the middle of the process after error message.

Someone can help me?

Danilo Fernandes
  • 39
  • 1
  • 1
  • 2

1 Answers1

0

In order to inform Control-M that your batch file has abended, you need to supply a code, other than zero. Change the line: exit /b

for something like:

exit /b %ERRORLEVEL%

or

exit /b 5

In the last example, Control-M will inform you that your job has abended with a return code 5.

I would try to replace all the lines in your batch file for these:

robocopy "C:\Temp\enviar" "C:\Temp\enviado"
exit /b %ERRORLEVEL%

Hope this helps.

Adrian Mole
  • 49,934
  • 160
  • 51
  • 83