Размер шрифта:

Резервное копирование своими руками

Художнику-дизайнеру часто приходится создавать для заказчика несколько вариантов одного и того же оригинал-макета, отличающегося только незначительными деталями. Процесс их создания облегчается с помощью предлагаемого макроса, обрабатываемого стандартным процессором wscript.exe (устанавливается: Панель управления|Установка и удаление программ|Установка Windows| Стандартные|Сервер сценариев). Сохраните его текст в файле с расширением vbs (например, BackUp.vbs) в каталоге Windows.


Сохранение текущего варианта выполняется командой BackUp <имя Файла или Папки>. В ходе ее работы из командной строки считывается имя исходного файла (fOld) и формируется имя резервной копии (fNew). Пользователю дается возможность добавить в новое имя свой комментарий и выбрать тип операции - с упаковкой архиватором PKZIP или без. Вместо PKZIP можно использовать другой, подправив путь к нему и его ключи в WshSell.Run.


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


Листинг 1: Содержимое файла BackUp.vbs


Set WshShell = WScript.CreateObject("WScript.Shell")
Set objNet = WScript.CreateObject("WScript.Network")
Set fso = СreateObject("Scripting.FileSystemObject")
Set objArgs = Wscript.Arguments
DT = FormatDateTime(Now,2) ' Текущая дата в формате ДД.ММ.ГГ
fOld = objArgs(0) ' Имя исходного файла/каталога
bDir = "C:\!BackUP\" ' Каталог для резервных копий
fNew = bDir & fso.GetFileName(fOld) ' Новое полное имя резервной копии
fNew = fNew & "_" & Mid(DT,7,2) & "." & Mid(DT,4,2) & "." & Mid(DT,1,2)
fNew = fNew & "_" & Hour(Now) & "." & Minute(Now) & "." & Second(Now)
fNew = fNew & "_" & objNet.UserName & "@" & objNet.ComputerName
Desc = InputBox("Можно добавить короткое описание", "Коментарии ?")
If not (Desc = "") Then fNew = fNew & "_" & "(" & Desc & ")"
PackType = MsgBox (fNew & Chr(13) & "Упаковать ZIP-ом?", vbYesNo, "Запрос")

If (fso.FileExists(fOld)) Then
If ( PackType = vbYes ) Then
WshShell.Run "C:\ARC\PKZIP25 -add """ & fNew & """ """ & fOld & """", 1, TRUE
Else
fso.CopyFile fOld, fNew & "." & fso.GetExtensionName(fOld)
End If
ElseIf (fso.FolderExists(fOld)) Then
If ( PackType = vbYes ) Then
WshShell.Run "C:\ARC\PKZIP25 -add -rec -path=relative """ & fNew & ".zip"" """ _
& fOld & """" & "\*.*", 1, TRUE
Else
fso.CopyFolder fOld, fNew
End If
Else
WScript.Echo "Файл или каталог '" & fOld & "' не найден"
End If


Добавить в:


Комментарии к этой заметке больше не принимаются.




Рейтинг популярности - на эти заметки чаще всего ссылаются:


январь, 2008
пн вт ср чт пт сб вс
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31