What is the best command to move all files from one folder to another?
I want to do this from within a batch file.
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
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With