Robocopy
Robocopy, for "Robust File Copy", is a command-line directory and/or file replication command for Microsoft Windows. Robocopy functionally replaces Xcopy, with more options. Created by Kevin Allen and first released as part of the Windows NT 4.0 Resource Kit, it has been a standard feature of Windows since Windows Vista and Windows Server 2008. The command is . Features. Robocopy is noted for capabilities above and beyond the built-in Windows copy and xcopy commands, including the following, some requiring appropriate command-line options: Compression. Since Windows Server 2019 and Windows 10, a codice_6 option is available in codice_7  when copying across a network. With this switch, if the destination computer supports SMB compression and the files being copied are very compressible, there may be significant improvements to performance. The SMB compression adds inline whitespace compression to file transfers. Compression is also available with the codice_8 command and Hyper-V Live Migration with SMB. Examples of use. Here are some examples of usage, which is not case-sensitive. If more than one option is specified, they must be separated by spaces. If directory names have non-standard characters, such as spaces, they must be enclosed in double quotes, as  is usual in the command line. For the full reference, see the Microsoft TechNet Robocopy page. Syntactic focus on copying folders. Robocopy syntax is markedly different from its predecessors (copy and xcopy), in that it accepts only folder names, without trailing backslash, as its source and destination arguments. File names and wildcard characters (such as codice_26 and codice_27) are not valid as source or destination arguments; files may be selected or excluded using the optional "file" filtering argument (which supports wildcards) along with various other options. For example, to copy two files from folder codice_28 to codice_29, the following syntax  is used: And to copy all PDF files from codice_28 to codice_29: The files named are copied only from the folder selected for copying; fully qualified path names are not supported. CAUTION: A long-standing issue with Robocopy means that if you back up from the root folder of a drive [ e.g., ], the destination files will be given attributes including SH. This means that they will be invisible to normal access (including DIR in cmd.exe). To fix this, add to the robocopy command line - or do an ATTRIB command to remove them afterwards. Output. Robocopy outputs to the screen, or  optionally to a log file, the names of all the directories it encounters, in alphabetical order. Each name is preceded by the number of files in the directory that fulfill the criteria for being copied. If the directory does not yet exist in the target, it is marked "New Dir"; if the directory is empty and the /E option is not used, or it contains no files meeting the criteria, a new directory will not be created. If the /NFL (no file names in log) option is not used, the files being copied will be listed after the name of  the directory they are in. At the end of the output is a table giving numbers of directories, files, and bytes. For each of these, the table gives the total number found in the source, the number "copied" (including directories marked "New Dir" even if they are not copied), the number "skipped" (because they already exist in the target), and the number of "mismatches", "FAILED", and "extras". "Failed" can mean that there was an I/O error that prevented a file being copied, or that access was denied. There is also a row of time taken (in which the time  spent on failed files seems to be in the wrong column). Bandwidth throttling. Robocopy's "inter-packet gap" (IPG) option allows some control over the network bandwidth used in a session. In theory, the following formula expresses the delay (, in milliseconds) required to simulate a desired bandwidth (B, in kilobits per second), over a network link with an available bandwidth of B kbps: formula_1 In practice however, some experimentation is usually required to find a suitable delay, due to factors such as the nature and volume of other traffic on the network. The methodology employed by the IPG option may  not offer the same level of control provided by some other bandwidth throttling technologies, such as BITS (which is used by Windows Update and BranchCache). GUI. Although Robocopy itself is a command-line tool, Microsoft TechNet provides a GUI front-end called Robocopy GUI. It was developed by Derk Benisch, a systems engineer with the MSN Search group at Microsoft, and required .NET Framework 2.0. It includes a copy of Robocopy version XP026. There are non-Microsoft GUIs for Robocopy: Ken Tamaru of Microsoft developed a copying program with functionality similar to Robocopy, called RichCopy, discontinued in 2010. It is  not based on Robocopy, and does not require .NET Framework. Versions. Several versions of Robocopy do not report the version number when executing codice_38 on the command line. However, their version is stored inside the executable itself and can be queried with PowerShell for example (codice_39) or inside Windows Explorer by right-clicking on Robocopy.exe, selecting Properties, then clicking on the Details tab.