Как я могу переместить все файлы из одной папки в другую с помощью командной строки? - PullRequest
47 голосов
/ 20 января 2011

Какая лучшая команда для перемещения всех файлов из одной папки в другую?

Я хочу сделать это из пакетного файла.

Ответы [ 9 ]

51 голосов
/ 20 января 2011

Вы можете использовать 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
31 голосов
/ 20 января 2011
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
17 голосов
/ 20 января 2011

Эта команда переместит все файлы в исходной папке в папку назначения.

MOVE c:\originalfolder\* c:\destinationfolder

(однако она не будет перемещать какие-либо подпапки в новое место.)

Для просмотра инструкций повведите команду MOVE в командной строке Windows:

MOVE /?
4 голосов
/ 20 января 2011

Lookup move /? в Windows и man mv в системах Unix

3 голосов
/ 20 января 2011

Вы можете использовать команду move

move <source directory> <destination directory>

Ссылка

2 голосов
/ 10 июня 2016

Робокопия представляется наиболее универсальной. Смотрите другие варианты в справке

robocopy /?
robocopy SRC DST /E /MOV
2 голосов
/ 27 июня 2013

используйте move, затем move <file or folder> <destination directory>

0 голосов
/ 14 июня 2019

Обязательно используйте кавычки, если в пути к файлу есть пробелы:

move "C:\Users\MyName\My Old Folder\*" "C:\Users\MyName\My New Folder"

Это переместит содержимое C:\Users\MyName\My Old Folder\ в C:\Users\MyName\My New Folder

0 голосов
/ 10 июня 2016

Для перемещения подкаталогов, в том числе пустых папок, вы можете использовать комбинацию копирования и удаления:

# 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...