Копирование папок
Копирование папок является фундаментальной задачей в сетевом администрировании. Это необходимо для выполнения резервного копирования и операций по управлению данными. Часто опытный сетевой администратор упорядочивает файлы и папки перед резервным копированием. Это позволяет создать более аккуратную резервную копию, а также во многих случаях ускоряет процесс резервного копирования. Во многих организациях резервное копирование представляется трудновыполнимой задачей, и создание резервных копий сводится к постоянной борьбе с беспорядком. Организация папок может помочь справиться с этой проблемой.
Для копирования папок используется метод CopyFolder объекта FileSystemObject Важно понимать, что этот метод также копирует вложенные папки (в т.ч. пустые). Синтаксис метода CopyFolder таков:
-
Команда
Обязательный
Обязательный
Необязательный
параметр
Параметр
параметр
CopyFolder
Исходная папка
Конечная папка
overwrite
С овет. Как исходную, так и конечную папку можно указать либо с помощью локального пути, либо посредством пути UNC (Universal Naming Convention - Конвенция об универсальном назначении имен). Параметр overwrite является опциональным, он осуществляет запись поверх конечной папки, если для него установлено значение True (Истина).
В следующем сценарии выполняется копирование папки с именем fso, находящейся на диске С, в папку с именем fso1 на диске С. Важно заметить, что для успешного выполнения копирования папка не обязательно должна уже существовать.
Set objFSO = CreateObject("scripting.FileSystemObject")
objFSO.CopyFolder "c:\fso","C:\fso1"
Можно несколько облегчить работу со сценарием посредством использования переменных для хранения исходных и конечных папок. В следующем сценарии, CopyFolderExtended.vbs, реализован именно этот подход. Кроме того, создана константа с именем overwriteFiles, которой присвоено значение True. Обратите внимание, что в следующем сценарии конечная папка с именем dFolder расположена в сетевом ресурсе. Сценарий CopyFolderExtended.vbs может использоваться сетевым администратором для копирования пользовательских данных с локального компьютера на сетевой диск для консолидированного резервного копирования. Отрицательной стороной команды CopyFolder является то, что она не выводит какие-либо данные о своем состоянии, т.е. невозможно определить, работает команда или ее работа завершена. Для получения дополнительной информации можно использовать команды Now и Wscript.Echo, сообщающие о начале работы команды. Кроме того, по завершении операции копирования выводится еще одно сообщение о том, что копирование завершено, а также указывается время завершения операции.
Const OverWriteFiles = True
WScript.Echo(“beginning copy" & Now)
sFolder = "C:\Documents and Settings"
dFolder = "\\s2\fileBu"
Set objFSO = CreateObject ("Scripting.FileSystemObject")
objFSO.CopyFolder sFolder, dFolder, OverWriteFiles
WScript.Echo("ending copy" & Now)