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

интересно, если бы я мог помочь сделать следующее:

поиск на ПК (все объекты) всех файлов autocad ( * .DWG) и word (* .doc) и скопировать их на новый маршрут с моего сервера; при первом запуске он должен быть полным, а затем просто изменить дату полного копирования файлов.

Я попытался использовать следующее:

mkdir server1j$bk_user%computername%FULL%date:~6,4%-%date:~3,2%-%date:~0,2%a_ofim

FORFILES /P C: /S /M *.doc* /C "cmd /c COPY @file server1j$bk_user%computername%FULL%date:~6,4%-%date:~3,2%-%date:~0,2%a_ofima"

FORFILES /P C: /S /M *.dwg /C "cmd /c COPY @file server1j$bk_user%computername%FULL%date:~6,4%-%date:~3,2%-%date:~0,2%a_ofim"

дело в том, что я не знаю как:

  1. поиск по всем жестким дискам, мой текущий код ищет только диск C: (I
    думал о размещении строки С "если существует D: goto diskD" и
    поэтому для каждого диска, но я не уверен, есть ли еще один
    эффективно

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

Я надеюсь, что вы можете помочь мне ..

9
задан Pimp Juice IT
10.12.2022 7:03 Количество просмотров материала 2371
Распечатать страницу

3 ответа

как найти все диски?

чтобы перечислить все локальные диски, используйте следующий пакетный файл (GetDrives.cmd):

@echo off
setlocal enabledelayedexpansion
for /f "skip=1" %%d in ('wmic logicaldisk get caption ^| findstr /r /v "^$"') do (
  set _drive=%%d
  echo !_drive!
  rem add search code here
  )
endlocal

пример:

> GetDrives.cmd
C:
add search code here
D:
add search code here
E:
add search code here
F:
add search code here

чтобы пропустить DVD / CD диски, используйте следующий пакетный файл (GetDrives.cmd):

@echo off
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2" %%d in ('wmic logicaldisk get caption^, drivetype  ^| findstr /r /v "^$"') do (
  if not [%%e]==[5] (
    set _drive=%%d
    echo !_drive!
    echo add search code here
    )
  )
endlocal

пример вывода (диск d: это мой DVD-привод):

> GetDrives.cmd
C:
add search code here
E:
add search code here
F:
add search code here

>

Читать Далее

0
отвечен DavidPostill 2022-12-11 14:51

лучший способ, который я нашел для передачи такого рода данных при сохранении структуры папок через Robocopy.

с Robocopy вы также можете использовать поддержку многопоточности, чтобы ускорить ваши переводы.

пример: Robocopy C:\ *.формат DWG \\сервер\резервное копирование\users_C_Drive /Т:4

это сохранит структуру папок. Вы можете получить фантазии позже и добавить в пользовательских исключает для временных файлов и папок, которые будут пропущены.

1
отвечен Chris Parenteau 2022-12-11 17:08

Если вы хотите создать точную копию, используйте следующую версию (которая эквивалентна добавлению /E и / PURGE:

robocopy c:\test d:\test /MIR

если все, что вы хотите сделать, это скопировать каталоги и подкаталоги, включая пустые, используйте

robocopy c:\test d:\test /E

Это слеш на параметр Е, который вы получаете.

чтобы узнать больше о Robocopy вот удобный поиск:

http://www.google.com?q=robocopy + синтаксис

из моего сообщение в Robocopy-скопировать каталог в другой каталог

0
отвечен SDsolar 2022-12-11 19:25

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх