It’s really hard to run RoboCopy in a SQL Agent command step. We want to use CmdExec so we can execute using a DOS proxy. But RoboCopy has a lot of weird exit values.
Easily handle the exit codes by calling a batch file. I’ve hard coded our options to make it easy and standard.
@ECHO ON
IF {%3}=={} (
@ECHO USAGE
@ECHO RoboCopyFiles SourcePath DestinationPath Files
@ECHO.
GOTO FINISHED
) ELSE (
IF NOT {%4}=={} (
(robocopy %1 %2 %3 /COPY:DAT /NP /R:0 /A+:A)
) ELSE (
(robocopy %1 %2 %3 /COPY:DAT /NP /R:0 /A+:A /L)
)
)
:FINISHED
IF %ERRORLEVEL% GEQ 8 exit /B %ERRORLEVEL%
exit /B 0
