Software⏱️ 4 min read📅 2026-06-11

How to Fix: How to get ROBOCOPY to throw an error when there's denied access

ROBOCOPY errorlevel not throwing an error when accessing denied directory.

Quick Answer: Use the /LOG+ option to capture the actual error level, and then use a conditional statement to check for errors.

ROBOCOPY is a powerful command-line utility used to copy files and folders. However, when using ROBOCOPY to copy files to an inaccessible folder, it may not throw an error level above 0 or 1, which can be frustrating for administrators who want to take action upon failure. This guide aims to help you troubleshoot and resolve this issue.

This issue affects users of Server 2016 with admin-level CMD access, who are using ROBOCOPY to copy files from one folder to another. The script provided in the original problem statement uses a simple IF-ERRORLEVEL check to determine if the copy operation was successful, but it does not throw an error level above 1.

💡 Why You Are Getting This Error

  • The primary reason why ROBOCOPY may not throw an error level above 0 or 1 when accessing an inaccessible folder is due to the way Windows handles errors. When ROBOCOPY encounters an access denied error, it returns a status code of 5 (0x00000005), which corresponds to the ERROR_ACCESS_DENIED constant in the WinError.h header file. However, this constant is not recognized by default by the ERRORLEVEL command in CMD.
  • An alternative reason for this issue is that the /LOG option used in the ROBOCOPY script may be causing the error level to be suppressed. The /LOG option specifies the log file location and format, but it also includes a flag to suppress the display of error levels above 1.

✅ Best Solutions to Fix It

Enabling Error Level Output

  1. Step 1: To enable ROBOCOPY to throw an error level above 0 or 1, you need to modify the ERRORLEVEL command in your script. Instead of using the /LOG option, use the %ERRORLEVEL% variable directly.
  2. Step 2: Open your ROBOCOPY script and replace the line `robocopy %source% %destination% /E /NFL /NDL /NC /NS /NP /W:1 /R:0 /LOG:%logfilelocation%` with `robocopy %source% %destination% /E /NFL /NDL /NC /NS /NP /W:1 /R:0`. This will allow ROBOCOPY to display the error level in the CMD window.
  3. Step 3: Save your changes and re-run the script. The error level should now be displayed correctly, including any access denied errors.

Using a Different Error Level

  1. Step 1: If you prefer to use the /LOG option, you can modify it to include the ERROR_LEVEL command. Add the following flag to the /LOG option: `/ERRORLEVEL:1`.
  2. Step 2: Open your ROBOCOPY script and replace the line `robocopy %source% %destination% /E /NFL /NDL /NC /NS /NP /W:1 /R:0 /LOG:%logfilelocation%` with `robocopy %source% %destination% /E /NFL /NDL /NC /NS /NP /W:1 /R:0 /LOG:%logfilelocation% /ERRORLEVEL:1`. This will allow ROBOCOPY to display the error level in the log file and also throw an error level above 1.

💡 Conclusion

By following these steps, you should now be able to troubleshoot and resolve the issue of ROBOCOPY not throwing an error level above 0 or 1 when accessing an inaccessible folder. Remember to always check your script and log files for errors and use the correct flags and variables to achieve the desired behavior.

Did this fix your problem?

If not, try searching for specific error codes.

🔍 Search Error Database

❓ Frequently Asked Questions