Резервное копирование своими руками
Художнику-дизайнеру часто приходится создавать для заказчика несколько вариантов одного и того же оригинал-макета, отличающегося только незначительными деталями. Процесс их создания облегчается с помощью предлагаемого макроса, обрабатываемого стандартным процессором 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
Добавить в:
Рейтинг популярности - на эти заметки чаще всего ссылаются:
- 106 Windows 7 | DWM и WDDM 1.1 | Часть 1
- 048 Интернет экспловер 8 скачать бесплатно
- 020 Правильный язык
- 020 Samsung выпустила обновление для всех Galaxy-коммуникаторов.
- 019 Проводник не отображает эскизы графических файлов
- 019 Dr.Web в Минсельхозе России
- 018 Универсальный кодировщик
- 017 Инком автоматизировал управление персоналом в КЗШВ "Столичный"
- 016 Что такое антифишинг?
- 015 Пять способов открыть Рабочий стол
