VBA. Копирование со структурой папок
Модератор: Naeel Maqsudov
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
добавлю что ключ /I создаст папку Path_01 если её не существует.
ещё команда FOR была довольно занятна... а вообще наверное батник придётся стартовать
ещё команда FOR была довольно занятна... а вообще наверное батник придётся стартовать

- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
Aent, xcopy хорош, но он сделает каталоги вложенные в заданный первым параметром.
/S для рекурсии забыли
/S для рекурсии забыли

- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
??? Поясните, что Вы имеете в виду ?" писал(а):он сделает каталоги вложенные в заданный первым параметром.
/S для рекурсии забыли
/T /E - копируется всё дерево подпапок. Отнюдь не только первый уровень.
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
упс... про /S погорячился... это я перепробывался ключей 
основной тон сообщения заключался в неприменимости xcopy для задачи топикстартера.

основной тон сообщения заключался в неприменимости xcopy для задачи топикстартера.

- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Непонятно почему. Вложенные каталоги переносятся с любым разумным уровнем вложенности." писал(а):основной тон сообщения заключался в неприменимости xcopy для задачи топикстартера.
Или Avsha, я всё таки неправильно понял Вашу постановку задачи ?
to Aent,
xcopy копирует весь пучек вложенных папок
C:\Program\Path_01
C:\Program\Path_02
C:\Program\Path_03 и т.д.
А мне требуется скопировать только одну ветку с сохранением пути до корня, например
C:\Program\Path_02 на
K:\Program\Path_02
А этого xcopy сделать не сможет, она построит весь пучек \Path_01, \Path_02, \Path_03

Ну да ладно, считаю вопрос закрытым
ручная команда
md K:\Program\Path_02
- мне уже достаточно помогла
xcopy копирует весь пучек вложенных папок
C:\Program\Path_01
C:\Program\Path_02
C:\Program\Path_03 и т.д.
А мне требуется скопировать только одну ветку с сохранением пути до корня, например
C:\Program\Path_02 на
K:\Program\Path_02
А этого xcopy сделать не сможет, она построит весь пучек \Path_01, \Path_02, \Path_03

Ну да ладно, считаю вопрос закрытым
ручная команда
md K:\Program\Path_02
- мне уже достаточно помогла

- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Avsha, ну так ровно это я и предлагал
Впрочем, я всё время предполагаю, что исходные папки Path_xx cодержат подпапки...
Если это не так то конечно достаточно VBA команды MkDir. Вызов CMD (md) в этом
случае не нужен.
Впрочем, закроем тему
Код: Выделить всё
Sub CopyPath(sSourcePath as string)
Dim rc As Long
Dim sTargetPath as string
sTargetPath = "k:\" & Mid$(sSourcePath,4)
MkDir sTargetPath
rc = Shell("c:\Windows\System32\xcopy.exe """ & sSourcePath & """ """ & sTargetPath & """ /T /E", 0)
End Sub
Если это не так то конечно достаточно VBA команды MkDir. Вызов CMD (md) в этом
случае не нужен.
Впрочем, закроем тему

Вот, вот, вот -
xcopy не хочет свою работу выполнять, а MkDir за нее отдувается
xcopy не хочет свою работу выполнять, а MkDir за нее отдувается
