[batch-file] How to overwrite existing files in batch?

The following command copies and moves a file but I also need it to overwrite the file it's replacing.

xcopy /s c:\mmyinbox\test.doc C:\myoutbox

This question is related to batch-file overwrite

The answer is


If the copy command is run from within a batch job you do not need to use the /Y switch: it will overwrite existing files.


you need to simply add /Y

xcopy /s c:\mmyinbox\test.doc C:\myoutbox /Y

and if you're using path with spaces, try this

xcopy /s "c:\mmyinbox\test.doc" "C:\myoutbox" /Y

If destination file is read only use /y/r

xcopy /y/r source.txt dest.txt

You can refer Windows command prompt help using following command : xcopy /?


Add /y to the command line of xcopy:

Example:

xcopy /y c:\mmyinbox\test.doc C:\myoutbox

You can use :

copy /b/v/y

See SS64 on COPY.


Add /Y to the command line


For copying one file to another directory overwriting without any prompt i ended up using the simply COPY command:

copy /Y ".\mySourceFile.txt" "..\target\myDestinationFile.txt"

Here's what worked for me to copy and overwrite a file from B:\ to Z:\ drive in a batch script.

echo F| XCOPY B:\utils\MyFile.txt Z:\Backup\CopyFile.txt /Y

The "/Y" parameter at the end overwrites the destination file, if it exists.


A command that would copy in any case

xcopy "path\source" "path\destination" /s/h/e/k/f/c/y