Robocopy

Microsoft’s built-in utility, Robocopy, is the perfect tool for the job. Not only is it built into the operating system, but it can be automated with another built-in utility in Windows, the Task Scheduler. This blog covers how to automate daily Robocopy jobs using Task Scheduler. Again, the syntax I choose is. Robocopy: Basic comparison of two folders and write a log file listing the differences. ROBOCOPY “ FileShare SourceFolder” “ FileShare ComparisonFolder” /e /l /ns /njs /njh /ndl /fp /log:reconcile.txt. What is RoboCopy? Robocopy (Robust File Copy for Windows) is a command-line directory and file replication command for Microsoft Windows replaced Xcopy since Windows Vista and Windows Server 2008 and provides more options to copy files.

Robocopy is a robust file copy command for the Windows command line. It allows users to copy files, directories, and even drives from one location to another.

Availability

Robocopy is an external command that is available for the following Microsoft operating systems as robocopy.exe.

  • Windows NT (In resource kit)
  • Windows 2000 (In resource kit)
  • Windows Server 2008

Robocopy syntax

Robocopy
sourceSource directory (drive:path or serversharepath).
destinationDestination directory (drive:path or serversharepath).
fileFile(s) to copy (names/wildcards: default is '*.*').

Copy options

/SCopy subdirectories, but not the empty ones.
/ECopy subdirectories, including the empty ones.
/LEV:nOnly copy the top n levels of the source directory tree.
/ZCopy files in restartable mode.
/BCopy files in backup mode.
/ZBUse restartable mode. If access denied, use backup mode.
/EFSRAWCopy all encrypted files in EFS RAW mode.
/COPY:copyflag[s]What to COPY for files (default is /COPY:DAT).
(copyflags : D=Data, A=Attributes, T=Timestamps).
(S=Security=NTFS ACLs, O=Owner info, U=aUditing info).
/DCOPY:TCOPY the directory timestamps.
/SECCopy files with security (equivalent to /COPY:DATS).
/COPYALLCopy all file info (equivalent to /COPY:DATSOU).
/NOCOPYCopy no file info (useful with /PURGE).
/SECFIXFix file security on all files, even skipped files.
/TIMFIXFix file times on all files, even the skipped ones.
/PURGEDelete dest files/dirs that no longer exist in the source.
/MIRMirror a directory tree (equivalent to /E plus /PURGE).
/MOVMove files (delete from the source after copying).
/MOVEMove files and dirs (delete from the source after copying).
/A+:[RASHCNET]Add the given attributes to copied files.
/A-:[RASHCNET]Remove the given attributes from copied files.
/CREATECreate directory tree and zero-length files only.
/FATCreate destination files using 8.3 FAT file names only.
/256Turn off very long path (> 256 characters) support.
/MON:nMonitor source; run again when more than n changes seen.
/MOT:mMonitor source; run again in m minutes time, if changed.
/RH:hhmm-hhmmRun hours - times when new copies may be started.
/PFCheck run hours on a per file (not per pass) basis.
/IPG:nInter-packet gap (ms), to free bandwidth on slow lines.
/SLCopy symbolic links versus the target.
/MT[:n]Do multi-threaded copies with n threads (default 8).
n must be at least 1 and not greater than 128.
This option is incompatible with the /IPG and /EFSRAW options.
Redirect output using /LOG option for better performance.

File Selection Options

/ACopy only the files with the archive attribute set.
/MCopy only the files with the archive attribute and reset it.
/IA:[RASHCNETO]Include only the files with any of the given attributes set.
/XA:[RASHCNETO]Exclude files with any of the given attributes set.
/XF file [file]...Exclude files matching given names/paths/wildcards.
/XD dirs [dirs]...Exclude directories matching given names/paths.
/XCExclude changed files.
/XNExclude newer files.
/XOExclude older files.
/XXExclude extra files and directories.
/XLExclude lonely files and directories.
/ISInclude same files.
/ITInclude tweaked files.
/MAX:nMaximum file size - exclude files bigger than n bytes.
/MIN:nMinimum file size - exclude files smaller than n bytes.
/MAXAGE:nMaximum file age - exclude files older than n days/date.
/MINAGE:nMinimum file age - exclude files newer than n days/date.
/MAXLAD:nMaximum last access date - exclude files unused since n.
/MINLAD:nMinimum last access date - exclude files used since n.
(If n < 1900 then n = n days, else n = YYYYMMDD date).
/XJExclude junction points. (normally included by default).
/FFTAssume FAT file times (2-second granularity).
/DSTCompensate for one-hour DST time differences.
/XJDExclude junction points for directories.
/XJFExclude junction points for files.

Retry Options

/R:nNumber of retries on failed copies: default 1 million.
/W:nWait time between retries: default is 30 seconds.
/REGSave /R:n and /W:n in the registry as default settings.
/TBDWait for sharenames To be defined (retry error 67).

Robocopy Switches

Logging Options

Robocopy switches
/LList only - don't copy, timestamp or delete any files.
/XReport all extra files, not only those selected.
/VProduce verbose output, showing skipped files.
/TSInclude source file timestamps in the output.
/FPInclude full pathname of files in the output.
/BYTESPrint sizes as bytes.
/NSNo size - don't log file sizes.
/NCNo class - don't log file classes.
/NFLNo file list - don't log file names.
/NDLNo directory List - don't log directory names.
/NPNo progress - don't display percentage copied.
/ETAShow estimated time of arrival of copied files.
/LOG:fileOutput status to LOG file (overwrite existing log).
/LOG+:fileOutput status to LOG file (append to existing log).
/UNILOG:fileOutput status to LOG file as UNICODE (overwrite existing log).
/UNILOG+:fileOutput status to LOG file as UNICODE (append to existing log).
/TEEOutput to console window and the log file.
/NJHNo job header.
/NJSNo job summary.
/UNICODEOutput status as UNICODE.

Job Options

/JOB:jobnameTake parameters from the named job file.
/SAVE:jobnameSave parameters to the named job file.
/QUITQuit after processing command line (to view parameters).
/NOSDNo source directory is specified.
/NODDNo destination directory is specified.
/IFInclude the following files.

Robocopy examples

Robocopy

In this first example, any .txt file would be copied from the hope directory into the hope2 directory. Whenever you want to copy one or more files and not a complete directory the file must be specified after the destination directory.

In the above example, the robocopy command would copy all files (not directories) in the hope directory to the hope2 directory.

Robocopy error 5

In the above example, all files and folders (including empty ones) are copied from the hope directory to the hope2 directory.

This example mirrors what's in c:hope into c:hope2 and purge any files in the hope2 directory that don't exist in the hope directory. Use the /mir switch cautiously since it is deleting files that do not match in the destination directory.

Next, this example would copy any of the files in the hope directory on the network computer named computer to the current computer hope2 directory.

Robocopy Exclude Directory

Robocopy

Robocopy Compare Only

Additional information

Robocopy Vs Xcopy

  • See our copy definition for further information and related links on this term.