Improve robocopy performance (including Scheduled Tasks)

Robocopy is a handy command line tool but it can be extremely slow on occasion (orders of magnitude slower than a GUI drag and drop for example).

A few things to try:
1. On a reliable network don’t use the /Z switch.
2. Include the /MT:16 switch (enables the use of multi-threading).
3. Always run the command on either the source or destination (if possible).
4. Use UNC paths (rather than mapped drive letters) for remote connections.

For example, the complete command to mirror one folder on one machine to another:

robocopy “\\SOURCE\Share” “D:\LOCALCopy” /MIR /MT:16 /R:1 /W:1

Note that the /R and /W switches set the number of retries and wait time between retries respectively. Be careful with the /MIR switch as it will remove data from the destination folder if it is not in the source…

In addition, running robocopy via a batch file triggered in Task Scheduler can make things even slower. This is usually because the priority of the task is set at a low level (by default). The priority of the scheduled task can be changed quite simply:

1. Make sure your scheduled job is not running
2. Browse to “%windir%\system32\tasks” and find your task
3. Make a copy of your task in the same folder
4. Rename this copy and add the .xml extension
5. Edit the .xml file in Notepad
6. Scroll down close to the bottom and change <Priority>7</Priority> to <Priority>5</Priority>
7. Save the file
8. Open Task Scheduler and delete your scheduled task job
9. Right-click “Task Scheduler Library” on the left-hand side and select “Import Task”
10.Browse to “%windir%\system32\tasks” and select your copied task with the .xml extension
11.Click OK to save the task
12.Run your task and see if it completes quicker!
Thanks to Shaon Shan for the tip.

Related Posts

Need IT Help?

If you need assistance please feel free to reach out to us.