batch / bat pour copier le dossier et le contenu à la fois
j'écris un script batch qui fait une copie. Je veux le script à copier un dossier entier. Quand je veux copier un seul fichier, je le fais
copy %~dp0file.txt file.txt
si j'ai un dossier avec cette structure, est-ce qu'il y a une commande pour copier ce dossier entier avec son contenu tout d'un coup tout en conservant la structure exacte.
mainfolder/
file1.txt
file2.txt
insidefolder/
file3.txt
file4.txt
file5.txt
4 réponses
si vous avez xcopy
, vous pouvez utiliser le /E
param, qui va copier des répertoires et des sous-répertoires et les fichiers qu'ils contiennent, y compris en maintenant la structure des répertoires pour les répertoires vides
xcopy [source] [destination] /E
je soupçonne que l' xcopy
le commandement est la Balle magique que vous recherchez.
il peut copier des fichiers, des répertoires et même des disques entiers tout en préservant la hiérarchie des répertoires d'origine. Il y a également une poignée d'options supplémentaires disponibles, par rapport à la base copy
la commande.
découvrez le documentation ici.
si votre fichier batch ne doit s'exécuter que sur Windows Vista ou plus tard, vous pouvez utiliser robocopy
au lieu de cela, qui est un outil encore plus efficace que xcopy
, et est maintenant intégré dans le système d'exploitation. Sa documentation est disponible ici.
à L'ancienne:
xcopy [source] [destination] /E
xcopie deprecated. La robocopie remplace la Xcopie. Il est livré avec Windows 8, 8.1 et 10.
robocopy [source] [destination] /E
robocopy a plusieurs avantages:
- copier des chemins dépassant 259 caractères
- multithread copie
Plus de détails ici.
Pour Copier le Dossier, Vous pouvez Utiliser
robocopy C:\Source D:\Destination /E
Pour Copie De Fichier
copy D:\Sourcefile.txt D:\backup\Destinationfile.txt /Y
Supprimer le fichier dans un dossier de la dernière modifier ce jour, plus d'un jour
forfiles -p "D:\FolderPath" -s -m *.[Filetype eg-->.txt] -d -[Numberof dates] -c "cmd /c del @PATH"
Et vous pouvez Shedule tâche dans windows effectuer cette tâche automatiquement en temps spécifique.