What’s Xcopy?
Xcopy is a built in command on Windows OS.
Copy is the other command we have on Windows, it can copy files from one
directory to another. But it does not work for copying directories. Using
xcopy we can copy directories also.
Copy all the files in one directory
to another directory.
Xcopy /I Source_Directory
Destination_directory
This would copy only the immediate
files in the source directory to the destination. It would not copy files from
sub directories. Adding /I switch will avoid the question to the user ‘Does
the destination directory specify a file name or directory name on the target‘.
Copy a directory including all its
files and sub directories to another location on the same drive or a different
drive.
Xcopy /S /I /E Source_Directory
Destination_directory
For example to copy all the files
from D:\data\documents to the folderE:\Newfolder\documents we
need to run the below command.
Xcopy /S /I /E D:\data\documents
E:\Newfolder\documents
This command creates the folder E:\Newfolder\documents if
it already does not exist. It also creates the same directory/file structure in
the destination folder. If the destination folder already exists you do not
need to add /I switch. If the folder does not exist and you do not specify /I
you will be prompted to confirm if the destination is a filer or folder. This
would cause issues if you want to run unattended or automated copying of files.
Copy files including hidden and
system files.
The above command excludes hidden and system files
from copying. If you want to these files also then you need to add /H option to
your command. Then the command would be
Xcopy /S /I /E /H D:\data\documents
E:\Newfolder\documents
/E option causes to copy empty sub directories to
the destination folder.
If you add /H option the the command would also
copy hidden and system files to the destination folder.
If you are trying to overwrite an existing file
then add the option /Y so that you will not be prompted for confirmation for
overwriting the file.
Copy files based on archive attribute
If you want to copy only the files
that have archive attribute set, you can use /A and /M switches. Archive
attribute indicates whether the file has been modified since the time the
attribute was reset.
The command for this is:
Xcopy /A /I /S source_directory
destination_directory.
The above command keeps the archive attribute set;
It does not reset the attribute.
If you want to reset the archive attribute, you can
use /M switch instead of /A. The command for this case would be:
Xcopy /M /I /S source_directory
destination_directory
Exclude files in the copying
If you want to copy a directory to another location but want to exclude some
files then you can use /EXCLUDE switch with Xcopy command. You need to
put the list of the files to be excluded in a file and then specify this file
with the /EXCLUDE switch.
Xcopy /I Sourcedir Destdir /EXCLUDE:filename
Example:
Copy the directory D:\docs to E:\newdocs\ excluding all pdf and mp3 files:
C:\>type 1.txt
.pdf
.mp3
C:\>Xcopy D:\docs E:\newdocs /EXCLUDE:1.txt
You can also specify the full names of the files.
Each file name/pattern should be in a separate line.
The commands shown above can be used from batch
files also. This command is available in Windows 7, XP, Vista, Server 2003 and
Server 2008 editions.
Copy files based on modified date
Xcopy /D:dd-mm-yy /I sourcedir
destinationdir
Example: To copy all the files in the
directory ‘E:data’ that are modified on or after 1 st February
2011 to the folder ‘E:\backup‘
Xcopy /D:01-02-11 /I E:\data
E:\backup
Regards
R.karthikeyan