Existe-t-il un moyen de copier des répertoires de manière récursive dans un fichier .bat? Si tel est le cas, un exemple serait génial. Merci.
Existe-t-il un moyen de copier des répertoires de manière récursive dans un fichier .bat? Si tel est le cas, un exemple serait génial. Merci.
Réponses:
Regardez dans xcopy , qui copiera de manière récursive les fichiers et sous-répertoires.
Il y a des exemples, 2/3 en bas de la page. Une utilisation particulière est:
Pour copier tous les fichiers et sous-répertoires (y compris les sous-répertoires vides) du lecteur A vers le lecteur B, tapez:
xcopy a: b: /s /e
Copy-Item -Recurse
dans PowerShell à la place.
Après avoir lu les commentaires de la réponse acceptée, j'ai essayé la commande robocopy , qui a fonctionné pour moi (en utilisant l'invite de commande standard de Windows 7 64 bits SP 1):
robocopy source_dir dest_dir /s /e
/E
n'implique pas /S
? copy subdirectories, including Empty ones.
/S
et /E
semblent impliquer des choses opposées selon l' /?
aide de robocopy - s ne sont "pas vides" et "vides". Je pense que vous devriez en choisir un.
robocopy
renvoie un code de sortie de 1 si un ou plusieurs fichiers ont été copiés avec succès.
Vous pouvez écrire un algorithme récursif dans Batch qui vous donne un contrôle exact de 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
Windows Batch File en boucle dans les répertoires pour traiter les fichiers?