3

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

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

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

mkdir \\server1\j$\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 \\server1\j$\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 \\server1\j$\bk_user\%computername%\FULL\%date:~6,4%-%date:~3,2%-%date:~0,2%\a_ofim\"

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

  1. Поиск по всем жестким дискам, мой текущий код ищет только диск C: (Я думал о размещении строки с «если существует D: \ goto diskD» и т.д. Для каждого диска, но я не уверен, есть ли другой более эффективный

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

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

3 ответа3

1

Наилучший способ передачи данных такого типа при сохранении структуры папок - это Robocopy.

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

ПРИМЕР: Robocopy C:\ * .dwg \\ myserver \ backup \ users_C_Drive /MT: 4

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

0

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

robocopy c:\test d:\test /MIR

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

robocopy c:\test d:\test /E

Это обратная косая черта на опции E, которая получила вас.

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

http://www.google.com?q=robocopy+syntax

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

0

Как мне найти все жесткие диски?

Чтобы перечислить все ваши локальные диски, используйте следующий пакетный файл (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

Пример вывода (Drive d: мой DVD-привод):

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

>

Дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .