Копирование папок
Копирование папок является фундаментальной задачей в сетевом администрировании. Это необходимо для выполнения резервного копирования и операций по управлению данными. Часто опытный сетевой администратор упорядочивает файлы и папки перед резервным копированием. Это позволяет создать более аккуратную резервную копию, а также во многих случаях ускоряет процесс резервного копирования. Во многих организациях резервное копирование представляется трудновыполнимой задачей, и создание резервных копий сводится к постоянной борьбе с беспорядком. Организация папок может помочь справиться с этой проблемой. Для копирования папок используется метод CopyFolder объекта FileSystemObject Важно понимать, что этот метод также копирует вложенные папки (в т.ч. пустые). Синтаксис метода CopyFolder таков:
Совет. Как исходную, так и конечную папку можно указать либо с помощью локального пути, либо посредством пути 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)
|