web-dev-qa-db-fra.com

Fichier de commandes pour copier les répertoires de manière récursive

Est-il possible de copier des répertoires de manière récursive dans un fichier .bat? Si oui, un exemple serait génial. Merci.

108
sarsnake

Regardez dans xcopy , qui copiera récursivement les fichiers et les sous-répertoires.

Il y a des exemples, 2/3 en bas de la page. D'utilisation particulière est:

Pour copier tous les fichiers et sous-répertoires (y compris les sous-répertoires vides) du lecteur A au lecteur B, tapez:

xcopy a: b: /s /e

159
lc.

Après avoir lu les commentaires de la réponse acceptée, j'ai essayé la commande robocopy , qui a fonctionné pour moi (à l'aide de la commande standard Invite à partir de Windows 7 64 bits SP 1):

robocopy source_dir dest_dir /s /e

Vous pouvez écrire un algorithme récursif dans Batch qui vous permet de contrôler exactement ce que vous faites dans chaque sous-répertoire imbriqué:

@echo off
call :treeProcess
goto :eof

:treeProcess
rem Do whatever you want here over the files of this subdir, for example:
copy *.* C:\dest\dir
for /D %%d in (*) do (
    cd %%d
    call :treeProcess
    cd ..
)
exit /b

fichier batch Windows en boucle à travers des répertoires pour traiter des fichiers?

14
Aacini