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