Avoir xcopy copier un fichier et ne pas écraser le précédent s'il existe (sans demander)
j'envoie une commande à un ordinateur distant pour qu'il copie un fichier. Je veux que le fichier à copier, mais de ne pas remplacer le fichier précédent avec le même nom (s'il existe). J'ai aussi besoin que la commande s'exécute sans aucune invite (xcopy aime demander si le nom de la cible que j'ai spécifié est file ou directory, et il demandera aussi à propos de la réécriture d'un fichier).
6 réponses
aucun moyen de ne pas l'écraser autant que je sache. mais / Y va le faire écraser. et /je vais me débarrasser du fichier/dict invite. Voir xcopy /?
pour toutes les options
j'ai de bons résultats avec xcopy /d
.
il va copier les nouveaux fichiers, et puisque nous pouvons supposer que les fichiers existants ont le même horodatage, vous ne copierez que les fichiers qui n'existent pas.
juste au cas où quelqu'un d'autre le trouve: robocopy x:\sourcefolder Y:\destfolder /s /e /r:0 / z
beaucoup mieux que xcopy, vous donne même une table à la fin informant de tous les dossiers manqués ou sautés. Ne pas demander pour ne pas remplacer.
Vous pouvez aussi utiliser la commande Remplacer. Il a deux modes: ajouter des fichiers qui n'existent pas ou remplacer des fichiers qui existent. Vous voulez le mode précédent:
replace <path1> <path2> /A
j'ai dû copier et renommer des fichiers, donc j'ai eu l'invite à propos de la création d'un fichier ou d'un répertoire.
C'est la façon plutôt "hackish" dont je l'ai fait:
ECHO F | XCOPY /D "C:\install\dummy\dummy.pdf" "C:\Archive\fffc810e-f01a-47e8-a000-5903fc56f0ec.pdf"
XCOPY utilisera le " F " pour indiquer qu'il devrait créer la cible en tant que Fichier:
C:\install>ECHO F | XCOPY /D "C:\install\dummy\dummy.html" "C:\Archive\aa77cd6e-1d19-4eb4-b2a8-3f8fe60daf00.html"
Does C:\Archive\aa77cd6e-1d19-4eb4-b2a8-3f8fe60daf00.html specify a file name or directory name on the target
(F = file, D = directory)? F
C:\install\dummy\dummy.html
1 File(s) copied
j'ai aussi vérifié cette commande laisse les fichiers existants seul. (Vous devriez aussi :-)
Eh bien, il y a un certain remède! Cela m'a aidé à économiser beaucoup d'efforts et de temps sur Win10 tout en écrivant une configuration pour notre démo produit.
il suffit d'essayer d'utiliser la tuyauterie:
@ECHO N / COPY / - YSourceFiles Destination
à titre d'exemple, j'ai utilisé son morceau de code pour que j'ai une copie propre, douce, silencieuse et sûre!
@FOR /D %%F in ("FooPath") DO @(
@ECHO N|COPY /-Y ^"%%~npdxF\*.*^" ^"GooPath^" 3>NUL 2>NUL >NUL
)
où manifestement FooPath est la source et le GooPath est la destination.
Profitez-en!
(source principale:https://ss64.com/nt/copy.html)