Вопрос

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

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

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

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

Спасибо!

Это было полезно?

Решение

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

for /F "usebackq" %s IN (`DIR /B /S /A-D SrcDir`) DO @(
    XCOPY %s DestDir\%~nxs
)

Другие советы

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

XCOPY /E SrcDir\*.* DestDir\

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

FOR /D %s IN (SrcDir\*) DO @XCOPY /E %s DestDir\%~ns\

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

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

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

В пакетном файле vs.командная строка изменится с %f на %%f

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

xcopy c:\old\*.* d: ew\/s

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

 for /D %S IN ("src\*.*") DO  @COPY "%S\" "dest\"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top