Какая самая лучшая команда для перемещения всех файлов из одной папки в другую?
Я хочу сделать это из пакетного файла.
Какая самая лучшая команда для перемещения всех файлов из одной папки в другую?
Я хочу сделать это из пакетного файла.
Вы можете использовать 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 /?
в Windows и man mv
в системах Unix
Вы можете использовать команду move
move <source directory> <destination directory>
использовать move
то move <file or folder> <destination directory>
robocopy представляется наиболее универсальным. См. Другие варианты справки
robocopy /?
robocopy SRC DST /E /MOV
Обязательно используйте кавычки, если в пути к файлу есть пробелы:
move "C:\Users\MyName\My Old Folder" "C:\Users\MyName\My New Folder"
Чтобы переместить подкаталоги, включая пустые папки, вы можете использовать комбинацию копирования и удаления:
# 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