Comment puis-je déplacer tous les fichiers d’un dossier vers un autre en utilisant la ligne de commande?

Quelle est la meilleure commande pour déplacer tous les fichiers d’un dossier vers un autre?

Je veux faire cela depuis un fichier batch.

Vous pouvez utiliser move pour cela. La documentation de help move indique:

 Moves files and renames files and directories. To move one or more files: MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination To rename a directory: MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2 [drive:][path]filename1 Specifies the location and name of the file or files you want to move. destination Specifies the new location of the file. Destination can consist of a drive letter and colon, a directory name, or a combination. If you are moving only one file, you can also include a filename if you want to rename the file when you move it. [drive:][path]dirname1 Specifies the directory you want to rename. dirname2 Specifies the new name of the directory. /Y Suppresses prompting to confirm you want to overwrite an existing destination file. /-Y Causes prompting to confirm you want to overwrite an existing destination file. The switch /Y may be present in the COPYCMD environment variable. This may be overridden with /-Y on the command line. Default is to prompt on overwrites unless MOVE command is being executed from within a batch script. 

Voir la transcription suivante pour un exemple où il montre initialement les qq1 et qq2 avec respectivement trois et aucun fichier. Ensuite, nous faisons le move et nous constatons que les trois fichiers ont été déplacés de qq1 à qq2 comme prévu.

 C:\Documents and Settings\Pax\My Documents>dir qq1 Volume in drive C is Primary Volume Serial Number is 04F7-0E7B Directory of C:\Documents and Settings\Pax\My Documents\qq1 20/01/2011 11:36 AM  . 20/01/2011 11:36 AM  .. 20/01/2011 11:36 AM 13 xx1 20/01/2011 11:36 AM 13 xx2 20/01/2011 11:36 AM 13 xx3 3 File(s) 39 bytes 2 Dir(s) 20,092,547,072 bytes free C:\Documents and Settings\Pax\My Documents>dir qq2 Volume in drive C is Primary Volume Serial Number is 04F7-0E7B Directory of C:\Documents and Settings\Pax\My Documents\qq2 20/01/2011 11:36 AM  . 20/01/2011 11:36 AM  .. 0 File(s) 0 bytes 2 Dir(s) 20,092,547,072 bytes free 

 C:\Documents and Settings\Pax\My Documents>move qq1\* qq2 C:\Documents and Settings\Pax\My Documents\qq1\xx1 C:\Documents and Settings\Pax\My Documents\qq1\xx2 C:\Documents and Settings\Pax\My Documents\qq1\xx3 

 C:\Documents and Settings\Pax\My Documents>dir qq1 Volume in drive C is Primary Volume Serial Number is 04F7-0E7B Directory of C:\Documents and Settings\Pax\My Documents\qq1 20/01/2011 11:37 AM  . 20/01/2011 11:37 AM  .. 0 File(s) 0 bytes 2 Dir(s) 20,092,547,072 bytes free C:\Documents and Settings\Pax\My Documents>dir qq2 Volume in drive C is Primary Volume Serial Number is 04F7-0E7B Directory of C:\Documents and Settings\Pax\My Documents\qq2 20/01/2011 11:37 AM  . 20/01/2011 11:37 AM  .. 20/01/2011 11:36 AM 13 xx1 20/01/2011 11:36 AM 13 xx2 20/01/2011 11:36 AM 13 xx3 3 File(s) 39 bytes 2 Dir(s) 20,092,547,072 bytes free 
 move c:\sourcefolder c:\targetfolder 

va travailler, mais vous allez vous retrouver avec une structure comme celle-ci:

 c:\targetfolder\sourcefolder\[all the subfolders & files] 

Si vous souhaitez déplacer uniquement le contenu d’un dossier vers un autre, cela devrait le faire:

 SET src_folder=c:\srcfold SET tar_folder=c:\tarfold for /f %%a IN ('dir "%src_folder%" /b') do move %src_folder%\%%a %tar_folder% pause 

Cette commande déplacera tous les fichiers du dossier original vers le dossier de destination.

 MOVE c:\originalfolder\* c:\destinationfolder 

(Cependant, aucun sous-dossier ne sera déplacé vers le nouvel emplacement).

Pour rechercher les instructions de la commande MOVE, tapez ceci dans une invite de commande Windows:

 MOVE /? 

Rechercher move /? sur Windows et man mv sur les systèmes Unix

Vous pouvez utiliser la commande move

 move   

Référence

utilisez move puis move

robocopy semble être le plus polyvalent. Voir les autres options dans l’aide

 robocopy /? robocopy SRC DST /E /MOV 

Pour déplacer des sous-répertoires, y compris des dossiers vides, vous pouvez utiliser une combinaison de copie et de suppression:

 # Setting up test env... C:\> mkdir folder1 folder1\sub1 folder1\sub2 folder2 C:\> touch folder1\sub1\file.txt # Copy "folder1" to "folder2", then remove "folder1" C:\> xcopy /e folder1 folder2 C:\> rmdir /s /q folder1