# robocopy transfer file and not folder

I'm trying to use robocopy to transfer a single file from one location to another but robocopy seems to think I'm always specifying a folder. Here is an example:

robocopy "c:\transfer_this.txt" "z:\transferred.txt"


But I get this error instead:

2009/08/11 15:21:57 ERROR 123 (0x0000007B) Accessing Source Directory c:\transfer_this.txt\


(note the \ at the end of transfer_this.txt)

But if I treat it like an entire folder:

robocopy "c:\folder" "z:\folder"


It works but then I have to transfer everything in the folder.

How can I only transfer a single file with robocopy?

• def copyFile(fromLocation,toLocation,big=False): print("copy file from " + fromLocation + " to " + toLocation) if big: iFind=fromLocation.rfind('\\') fromLocation1 = fromLocation[: (iFind+1)] fileName=fromLocation[iFind+1 :] toLocation1 = toLocation[:(toLocation.rfind('\\')+1)] strcmd="robocopy "+fromLocation1+" "+toLocation1+" "+fileName print(strcmd) os.system(strcmd) else: shutil.copy2(fromLocation,toLocation)
– Gank
May 24, 2017 at 9:33

See: Robocopy /?

Usage : ROBOCOPY source destination [file [file]...] [options]

robocopy c:\folder d:\folder transfer_this.txt

• fwiw, at least on win2003: Quoting directory paths seems to make it hiccup. Sep 15, 2013 at 19:52
• @samsmith I've seen it hiccup when you have a \ before the closing quote (i.e.: ROBOCOPY "c:\folder1\" c:\folder2 file won't work but: ROBOCOPY "c:\folder1" c:\folder2 file does. I expect it's a text escaping thing Oct 23, 2015 at 7:22
• @MikeGoatly Excellent point. Robocopy does NOT like trailing \. It wants you to name the directories as "names" and does not want to imply in any way that it accepts anything other than a directory. Oct 23, 2015 at 16:26
• Generally you leave the trailing "\" off, but you can add a trailing space after the final "\" like: robocopy "c:\folder\ " "f:\folder" ...  or robocopy "c:\ " "f:\folder" ... , the escaped trailing space will be ignored although it's rather counter intuitive so I don't use it but it is one way to specify copying from the root. Another is to log to the desired folder then just specify the drive letter like: cd "c:\" -> robocopy "c:" "f:\folder" ... . And this also works to specify the root as the source: robocopy "c:\Temp\.." "f:\folder" ...  Sep 19, 2021 at 11:42
• if this is between two drives you can use the current directory of each drive. cd to c:\folder, switch to d: and cd to d:\folder, and then use robocopy c: d: transfer_this.txt Dec 9, 2021 at 18:59

Folder copier, not file copier

Robocopy syntax is markedly different from standard copy commands, as it accepts only folder names as its source and destination arguments. File names and wild-card characters (such as *.*) are not valid source or destination arguments. Files may be selected or excluded using the optional filespec filtering argument. Filespecs can only refer to the filenames relative to the folders already selected for copying. Fully-qualified path names are not supported.

For example, in order to copy the file foo.txt from directory c:\bar to c:\baz, one could use the following syntax:

robocopy c:\bar c:\baz foo.txt


• One thing I noticed. If C:\bar has any folders in it and the option /e has been added. It will recreate all the folders with no files in them. I guess since the foo.txt acts like a filter and couldn't find any files in those folders and your keeping empty folders. Thats why the empty folders are created. Aug 2, 2017 at 20:02

Try inserting a space before the destination, like this:

robocopy "c:\transfer_this.txt" "z: \this.txt"


notice the space after the destination "folder" z:.

• This did not work for me, I had to follow @KPWINC's instructions and leave the file name out of the source path. Nov 25, 2015 at 0:17
• This is a troll answer? Tried and does not work (nor does it seem like it would have worked). May 4, 2016 at 4:24

robocopy Q:\ F:\Dopbox "Microsoft Office.zip" /MT:128

• Robocopy source destination filename
– Dale
Jun 4, 2016 at 10:34
• A command without explanation is not a useful answer. Jun 4, 2016 at 12:31