it-roy-ru.com

Как мне написать пакетный скрипт, который копирует один каталог в другой, заменяя старые файлы?

Мне нужен пакетный скрипт в Windows, с помощью которого я могу скопировать один каталог в другой. Если этот каталог уже существует, а затем для каждого файла, который уже существует и с тем же именем и местоположением, он должен быть перезаписан, если он не существует, его просто нужно добавить.

В конце концов, это должен быть пакетный скрипт, которому я могу передать 2 аргумента: источник и место назначения.

10
NomenNescio

В вашем командном файле сделайте это

set source=C:\Users\Habib\test
set destination=C:\Users\Habib\testdest\
xcopy %source% %destination% /y

Если вы хотите скопировать подкаталоги включая пустые каталоги затем выполните:

xcopy %source% %destination% /E /y

Если вы хотите копировать только подкаталоги, а не пустые каталоги, используйте /s, например:

xcopy %source% %destination% /s /y
32
Habib

Кажется, что последняя функция для этого в Windows 7 - robocopy.

Пример использования:

robocopy <source> <destination> /e /xf <file to exclude> <another file>

/ e копирует подкаталоги, включая пустые,/xf исключает копирование определенных файлов.

Дополнительные параметры здесь: http://technet.Microsoft.com/en-us/library/cc733145(v=ws.10).aspx

4
Uri

Вы рассматривали возможность использования команды "xcopy"?

Команда xcopy сделает все это за вас.

3
pdwalker

Попробуй это:

xcopy %1 %2 /y /e

%1 и %2 являются исходным и целевым аргументами, которые вы передаете пакетному файлу. т.е. C:\MyBatchFile.bat C:\CopyMe D:\ToHere

2
Bali C

Просто используйте xcopy /y source destination

1
adarshr