Comment copier un fichier à l'aide de commandes DOS dans une structure de répertoire qui n'existe peut-être pas encore? Je dois pouvoir forcer la création du chemin du répertoire vers l'emplacement du fichier cible si cet emplacement n'existe pas déjà.
Par exemple, il y a déjà un fichier.txt à cet emplacement:
C:\file.txt
Et je veux le copier sur
C:\example\new\path\to\copy\of\file\file.txt
mais à ce moment
C:\example\
et tous les sous-répertoires peuvent ou non exister.
En gros, je cherche une commande "Copier et créer le chemin cible si nécessaire". Que recommanderiez-vous est le meilleur moyen d'y parvenir?
Oui, c'est xcopy . Voici à quoi ça va ressembler:
xcopy file.txt c:\example\new\path\to\copy\of\file\file.txt
Informations XCOPY sur
Vous voudrez peut-être aussi vous pencher sur ROBOCOPY , dans le XP kit de ressources et la norme dans Vista, Windows 7 et Server. 2008.
robocopy . c:\example\new\path\to\copy\of\file file.txt
J'ai essayé d'utiliser quelque chose comme:
xcopy file.txt c:\example\new\path\to\copy\of\file\file.txt
Mais cela me demanderait s'il s'agissait d'un fichier ou d'un répertoire. Puisque j'avais cela dans un fichier batch avec 40000 fichiers, ce serait peu pratique. Cette solution ne résout que partiellement mon problème: elle crée la structure de répertoires, mais elle nécessite une interaction de l'utilisateur. J'ai trouvé la solution à mon problème ici:
https://stackoverflow.com/questions/4283312/batch-file-asks-for-file-or-folder
Ce qui consiste essentiellement à ajouter un "*" à la fin du fichier de destination:
xcopy file.txt c:\example\new\path\to\copy\of\file\file.txt*
EDIT: comme indiqué par @romkyns, des résultats indésirables peuvent apparaître si vous avez des fichiers portant le même nom et quelque chose d'autre (comme 'fichier.txt.bak'). Dans le même fil posté ci-dessus, une autre solution qui fonctionne est le piping "echo f" de votre commande:
echo f | xcopy file.txt c:\example\new\path\to\copy\of\file\file.txt
Où vous devriez substituer le "f" pour la lettre que votre système utilise pour le fichier, au cas où vous l'utiliseriez dans une autre langue.
DOS, wow! Quoi qu'il en soit, vous utilisez la commande XCOPY .