Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I move all the files from one folder to another using the command line?

What is the best command to move all files from one folder to another?

I want to do this from within a batch file.

like image 261
Chirag Avatar asked Jan 20 '11 03:01

Chirag


2 Answers

You can use move for this. The documentation from help move states:

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. 

See the following transcript for an example where it initially shows the qq1 and qq2 directories as having three and no files respectively. Then, we do the move and we find that the three files have been moved from qq1 to qq2 as expected.

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    <DIR>          . 20/01/2011  11:36 AM    <DIR>          .. 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    <DIR>          . 20/01/2011  11:36 AM    <DIR>          ..                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    <DIR>          . 20/01/2011  11:37 AM    <DIR>          ..                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    <DIR>          . 20/01/2011  11:37 AM    <DIR>          .. 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 
like image 98
paxdiablo Avatar answered Sep 17 '22 15:09

paxdiablo


move c:\sourcefolder c:\targetfolder 

will work, but you will end up with a structure like this:

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

If you want to move just the contents of one folder to another, then this should do it:

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 
like image 41
JosephStyons Avatar answered Sep 20 '22 15:09

JosephStyons