web-dev-qa-db-fra.com

Quelle est la commande de ligne de commande Windows pour copier des fichiers?

Qu'est-ce que la commande invite Windows pour copier des fichiers?

J'ai besoin de déplacer un fichier de l'emplacement A vers l'emplacement B. Aussi, si le dossier de l'emplacement B n'existe pas, je veux le créer.

J'ai besoin que ce soit une ligne de commande pour pouvoir l'automatiser.

La version de Windows est XP.

35
David Basarab

La commande xcopy est ce que vous recherchez. Exemple:

xcopy source destination /E /C /H /R /K /O /Y

La commande ci-dessus copiera la source vers la destination, les fichiers et répertoires (y compris les vides), ne s'arrêtera pas en cas d'erreur, copiera les fichiers cachés et système, écrasera les fichiers en lecture seule, préservera les attributs et les informations de propriété/ACL, et supprimera le invitant à remplacer les fichiers de destination existants.

/E    Copies directories and subdirectories, including empty ones.
      Same as /S /E. May be used to modify /T.
/C    Continues copying even if errors occur.
/H    Copies hidden and system files also.
/R    Overwrites read-only files.
/K    Copies attributes. Normal Xcopy will reset read-only attributes.
/O    Copies file ownership and ACL information.
/Y    Suppresses prompting to confirm you want to overwrite an
      existing destination file.

Pour plus d'informations, tapez xcopy /? et votre ligne de commande.

47
user1797

Utilisation md pour créer le dossier (c'est ok s'il existe déjà)

Utilisation copie ou bouge toi pour les fichiers, et xcopy pour les dossiers

8
Dani

Dans un fichier batch:

if not exists locationB\nul mkdir locationB
copy locationA\file locationB

if not exists vérifie le paramètre pour voir s'il existe, mais il ne fonctionne que sur les fichiers. Pour vérifier l'existence d'un répertoire, vous devez rechercher un 'pseudo-fichier' appelé "nul" - vérifier l'existence de ce fichier retournera toujours vrai si le répertoire existe.

La ligne de copie copie le fichier appelé file dans le répertoire locationA vers locationB et nomme le fichier de la même manière. Si vous souhaitez renommer le fichier en même temps, vous pouvez également le faire:

copy locationA\file locationB\newfilename
2
Graeme Perrow

Si vous voulez pouvoir synchroniser la copie et d'autres fonctionnalités avancées (ignorer certains dossiers, inclure uniquement certains caractères génériques), regardez robocopy. Inclus dans Vista et au-delà, en option (à partir des outils du kit de ressources) dans les versions antérieures.

2
Richard

Utilisez ROBOCOPY si vous créez des scripts de sauvegarde. xcopy a été déprécié et sera probablement retiré de l'utilisation dans un proche avenir. robocopy peut tout faire avec xcopy. Il est également plus flexible et fiable. La création de scripts avec robocopy les rendra pérennes.


  1. Utilisez robocopy pour copier facilement des dossiers. La commande robocopy remplace la commande xcopy. Il peut copier rapidement des dossiers entiers sans avoir à se soucier de définir le contenu. Par exemple, pour copier tout le contenu du répertoire C:\tools dans le nouveau dossier D:\backup\tools, entrez ce qui suit:

    robocopy C:\tools D:\backup\tools /e
    

    Le modificateur/e indique à robocopy d'inclure tous les sous-répertoires. Cela inclut les dossiers vides. robocopy copiera automatiquement les fichiers cachés et les fichiers système. Il créera de nouveaux répertoires s'ils n'existent pas à l'emplacement cible.

  2. Mettre en miroir un répertoire. La mise en miroir d'un répertoire est idéale pour effectuer des sauvegardes. L'option miroir de robocopy copiera tout le contenu de la source vers la destination. Il supprimera alors tout ce qui n'existe pas à la source à la destination. Cela garantit que votre sauvegarde ne contient que les dernières versions de vos fichiers. Par exemple, pour mettre en miroir C:\Users\Mes documents vers D:\backup\Mes documents, entrez les informations suivantes: [4]

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /mir
    

    Cette fonction conservera toutes les autorisations des fichiers d'origine.

  3. Activez le redémarrage. Vous souhaiterez peut-être inclure la possibilité de redémarrer le processus au cas où la connexion serait rompue à mi-copie.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /z
    
  4. Connectez-vous au processus de copie. robocopy vous permet de créer un fichier journal. Cela peut vous aider à identifier les problèmes ou à générer une archive de ce qui a été copié.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /log+:<filename>.txt
    

    Le modificateur/log + ajoutera le fichier journal existant au lieu de le remplacer. Si vous préférez simplement écraser l'ancien fichier journal, utilisez /log:.txt.

2
Program-Me-Rev

xcopy créera la structure de répertoires pour vous. L'astuce consiste à utiliser l'option/I et à jeter un astérisque à la fin du nom de fichier pour que xcopy pense que vous copiez plusieurs fichiers, sinon il vous demande si le nom cible est le nom de fichier que vous voulez, ou le nom de répertoire que vous voulez . Par exemple.

xcopy /I c:\<SourceDir>\<SourceFile> c:\<TargetDirThatDoesNOTExist>

Je regarderais également RoboCopy, mais vous devez l'obtenir à partir du kit de ressources car il n'est pas dans Windows jusqu'à Vista.

0
WaldenL