Comment copier des fichiers avec Windows Batch?
-
06-07-2019 - |
Question
J'ai un répertoire avec plusieurs sous-répertoires avec des fichiers.
Comment copier tous les fichiers des sous-répertoires dans un nouvel emplacement?
Modifier: je ne souhaite pas copier les répertoires, mais uniquement les fichiers ...
Comme cela concerne toujours XP, j'ai choisi la solution ci-dessous:
for /D %S IN ("src\*.*") DO @COPY "%S\" "dest\"
Merci!
La solution
Ok. Avec votre modification qui dit que vous ne voulez pas la structure de répertoires, je pense que vous allez vouloir utiliser quelque chose comme ceci:
for /F "usebackq" %s IN (`DIR /B /S /A-D SrcDir`) DO @(
XCOPY %s DestDir\%~nxs
)
Autres conseils
La commande Xcopy devrait aider ici.
XCOPY /E SrcDir\*.* DestDir\
Ou si vous ne souhaitez utiliser aucun des fichiers de SrcDir, mais uniquement les sous-répertoires, vous pouvez utiliser XCOPY conjointement avec la commande FOR:
FOR /D %s IN (SrcDir\*) DO @XCOPY /E %s DestDir\%~ns\
robocopy " c: \ source " " c: \ destination " / E
Si je vous ai bien compris, vous avez une grande arborescence de répertoires et vous souhaitez que tous les fichiers qu’elle contient se trouvent dans un répertoire. Si cela est correct, je peux le faire en deux lignes:
dir /s /b "yourSourceDirectoryTreeHere" > filelist.txt
for /f %f in (filelist.txt) do @copy %f "yourDestinationDirHere"
Dans un fichier de commandes et la ligne de commande, remplacez% f par %% f
Si vous souhaitez conserver la même structure de dossiers à l’autre extrémité, cela semble aussi simple que XCOPY
xcopy c: \ old \ *. * d: \ new \ / s
Utilisez / e au lieu de / s si vous souhaitez également copier les répertoires vides.
for /D %S IN ("src\*.*") DO @COPY "%S\" "dest\"