26

I can't believe that I am having trouble in copying a directory into another directory via the windows command line.

What I want to do is simple -:

Lets say I have a directory -:

C:\test

and I want to copy test to D: So in D there should be a folder like the following-:

D:\test

when I use

robocopy C:\test D:\test \E

D drive ends up with the contents of C:\test in the root rather than being contained in a directory called test.

How do you do this simple thing ?

4 Answers 4

35

If you want to create an exact duplicate, use the following version (which is equivalent to adding /E and /PURGE:

robocopy c:\source d:\destination /MIR

If all you want to do is copy the directories and subdirectories including empty ones, use

robocopy c:\source d:\destination /E

It is the backslash on the E option that was getting you.

To learn more about Robocopy here is a handy search:

http://www.google.com?q=robocopy+syntax

2
  • 1
    You might want to fix the typo: in "robocopy d:\test d:\test /E" you need to address the source as C:, not D:.
    – Herb
    May 27, 2017 at 4:50
  • 1
    by the way, here is something you might want to consider. If you do ROBOCOPY a lot, you probably have discovered that when the clocks don't agree it can end up recopying a lot of files because it thinks they are new. What you want to do is click on your clock(s) and find Internet Time and change the server to time.nist.gov on both then click on update. You can see the details in this Q&A I did on SE: raspberrypi.stackexchange.com/questions/68811/…?
    – SDsolar
    Jun 24, 2017 at 9:35
2

It seems to me that usage of robocopy in the previous answers do not actually answer the question, that is, to copy the source folder, with its contents, to the destination folder.

The following is what worked for me. It preserves the creation dates and logs activities both to a file and to the screen. It also retries to read a file up to 5 times if inaccessible. Feel free to modify the flags to suit your needs.

robocopy 'G:\Some Directory\A ' 'E:\Some Directory\A ' /e /dcopy:T /mt /tee /log:A.log /r:5

Two observations that seemed non-obvious to me:

  • The path strings need to end with a space in order for the source root directory to be created at the destination, and not only its contents without the containing directory.
  • The root directory at the destination needs to be in the destination path, even though it doesn't exit before issuing the command.
    • The original creation date of the root directory will still be preserved.

I find it surprising that an operation as commonly desired as the one asked about is not better documented.

1

Use Robocopy (Robust File Copy)

robocopy c:\test d:\test /s /e *.*

/s switch is for copying all sub directories and /e switch is for copying all the empty sub directories & *.* means (all files).(any extensions)

syntax:

robocopy source-folder destination-folder files switches

Please visit this link for more information about robocopy.

0

Although this answer doesn't use robocopy, I think it still does the purpose of copying directories.

You could try using: xcopy

Usage: xcopy source [destination] ...

You could check for more details by executing xcopy /?

Source: HOW TO: Copy a Folder to Another Folder and Retain its Permissions.

4
  • 6
    FYI: Robocopy replaces XCopy in later versions of windows
    – Multinerd
    Nov 29, 2018 at 17:09
  • @Multinerd In which ones? Here on Windows 11, I still have xcopy and robocopy separately.
    – MikeB
    Jan 2, 2023 at 15:38
  • @mikeb the bin files will still be there for legacy reasons. What I mean by replace is to think of robocopy as xcopy+ en.m.wikipedia.org/wiki/Robocopy
    – Multinerd
    Jan 3, 2023 at 22:16
  • 1
    It is bad form to suggest another tool unless it is BETTER. robocopy is better than xcopy on copying from network paths because of the retries. The OP was asking for help on robocopy.
    – cbuteau
    Sep 18, 2023 at 13:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .