Comment utiliser xcopy pour copier uniquement les fichiers s'ils sont plus récents?

J'ai beaucoup d'applications web dans une solution Visual Studio.

Tous ont la même commande post build:

xcopy "$(TargetDir)*.dll" "D:Projectbin" /i /d /y

Il serait utile d'éviter de remplacer les fichiers plus récents par des fichiers anciens (par exemple, quelqu'un pourrait accidentellement ajouter une référence à une ancienne version d'une DLL).

Comment puis-je utiliser xcopy pour remplacer les anciens fichiers uniquement avec nouveaux fichiers DLL généré par Visual Studio?

24
demandé sur Tim Medora 2011-07-14 00:23:01

2 réponses

En tapant "help xcopy" sur la ligne de commande:

/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.

Vous utilisez donc déjà xcopy pour remplacer uniquement les anciens fichiers par de nouveaux. Si cela ne se produit pas, vous devrez peut-être échanger les positions des commutateurs /i et /d.

28
répondu JAB 2011-07-13 20:25:15

Pas testé, mais j'utilise un script de commande similaire pour ce genre de tâches.

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
0
répondu Jim 2012-08-28 14:25:05