如何使用命令行将所有文件从一个文件夹移动到另一个文件夹?

将所有文件从一个文件夹移动到另一个文件夹的最佳命令是什么?

我想从一个batch file中做到这一点。

你可以使用move这个。 来自help move文档help move状态:

 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. 

请参阅以下脚本,其中最初将qq1qq2目录显示为分别具有三个文件和没有文件。 然后,我们做了这个move ,我们发现三个文件已经按照预期从qq1移动到了qq2

 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 

将工作,但你会最终得到这样的结构:

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

如果您只想将一个文件夹的内容移动到另一个文件夹,则应该这样做:

 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 

该命令会将原始文件夹中的所有文件移动到目标文件夹。

 MOVE c:\originalfolder\* c:\destinationfolder 

(但是,它不会将任何子文件夹移动到新的位置。)

要查找MOVE命令的说明,请在Windows命令提示符下键入:

 MOVE /? 

查找move /? 在Unix系统上的Windows和man mv

你可以使用命令move

 move <source directory> <destination directory> 

参考

使用move然后move <file or folder> <destination directory>

robocopy似乎是最通用的。 看到它的帮助中的其他选项

 robocopy /? robocopy SRC DST /E /MOV 

要移动子目录(包括空文件夹),可以使用复制和删除的组合:

 # 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