如何使用命令行将所有文件从一个文件夹移动到另一个文件夹?
将所有文件从一个文件夹移动到另一个文件夹的最佳命令是什么?
我想从一个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.
请参阅以下脚本,其中最初将qq1
和qq2
目录显示为分别具有三个文件和没有文件。 然后,我们做了这个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