Как использовать xcopy только для копирования файлов, если они новее? - PullRequest
24 голосов
/ 14 июля 2011

У меня много веб-приложений в решении Visual Studio.

Все они имеют одну и ту же команду посткомпоновки:

xcopy "$(TargetDir)*.dll" "D:\Project\bin" /i /d /y

Было бы полезно не заменять новые файлы старыми (например, кто-то может случайно добавить ссылку на старую версию DLL).

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

Ответы [ 2 ]

31 голосов
/ 14 июля 2011

После ввода «help xcopy» в командной строке:

/D:m-d-y     Copies files changed on or after the specified date.
             If no date is given, copies only those files whose
             source time is newer than the destination time.

Таким образом, вы уже используете xcopy для замены только старых файлов новыми. Если этого не происходит, возможно, вам придется поменять положения переключателей /i и /d.

0 голосов
/ 28 августа 2012

Не проверено, но я использую аналогичный командный сценарий для такого рода задач.

set DIR_DEST=D:\Project\bin
pushd "$(TargetDir)"

::
:: Move Files matching pattern and delete them
::
for %%g in (*.dll) do (xcopy "%%g" "%DIR_DEST%" /D /Y & del "%%g")

::
:: Move Files matching pattern
::
:: for %%g in (*.dll) do (xcopy "%%g" "%DIR_DEST%" /D /Y )

popd
...