Как мне скопировать файлы с помощью Windows Batch? - PullRequest
4 голосов
/ 09 октября 2008

У меня есть каталог с несколькими подкаталогами с файлами.
Как я могу скопировать все файлы в подкаталогах в новое место?

Редактировать: Я не хочу копировать каталоги, только файлы ...

Поскольку это все еще на XP, я выбрал следующее решение:

 for /D %S IN ("src\*.*") DO  @COPY "%S\" "dest\"

Спасибо!

Ответы [ 6 ]

6 голосов
/ 09 октября 2008

Хорошо. С вашей правкой, которая говорит, что вам не нужна структура каталогов, я думаю, вы захотите использовать что-то вроде этого:

for /F "usebackq" %s IN (`DIR /B /S /A-D SrcDir`) DO @(
    XCOPY %s DestDir\%~nxs
)
3 голосов
/ 09 октября 2008

Здесь должна помочь команда Xcopy.

XCOPY /E SrcDir\*.* DestDir\

Или, если вам не нужны никакие файлы в SrcDir, а только подкаталоги, вы можете использовать XCOPY вместе с командой FOR:

FOR /D %s IN (SrcDir\*) DO @XCOPY /E %s DestDir\%~ns\
2 голосов
/ 09 октября 2008

robocopy "c:\source" "c:\destination" /E

1 голос
/ 09 октября 2008

Если я правильно вас понял, у вас есть большое дерево каталогов, и вы хотите, чтобы все файлы внутри него были в одном каталоге. Если это правильно, я могу сделать это в две строки:

dir /s /b "yourSourceDirectoryTreeHere" > filelist.txt
for /f %f in (filelist.txt) do @copy %f "yourDestinationDirHere"

В командном файле вместо командной строки измените% f на %% f

0 голосов
/ 09 октября 2008
 for /D %S IN ("src\*.*") DO  @COPY "%S\" "dest\"
0 голосов
/ 09 октября 2008

Если вы хотите сохранить ту же структуру папок на другом конце, звучит так же просто, как XCOPY

xcopy c: \ old \ *. * D: \ new \ / s

Используйте / e вместо / s, если вы хотите скопировать пустые каталоги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...