garmonist
|
Posted: Fri Apr 23, 2010 15:25 Post subject: |
|
|
Перечитал всю тему. Решения нашел только частичные.
Помогите, пожалуйста, создать код для двух кнопок:
1. БЭКАП
1.1. Файл необходимо заархивировать в архив {ИмяФайла}_[ГГГГ.ММ.ДД чч.мм.сс].rar.
1.2. Переместить его в папку {ПутьКФайлу}\X-ARC. Если такой папки не существует, то ее надо создать.
2. ВОССТАНОВЛЕНИЕ
2.1. Архив необходимо распаковать в паку {ИмяАрхива}.
2.2. Распакованный файл переименовать в {ИмяАрхиваБезРасширения}. Расширение у распакованного должно остаться исходным.
При этом подразумевается, что бэкапим и восстанавливаем только один файл.
Есть ощущения, что это надо делать в вб-скрипте. Но как вставить в вбс запуск винрара с параметрами - вообще не представляю.
Для пункта 1.1. у меня есть параметры TC для архивирования:
Code: | a -dh -m3 -ag"_[yyyy.mm.dd hh.mm.ss]" "%O".rar ""%N"" |
Для пункта 1.2. есть код вбс для создания папки:
Code: | Option Explicit
Dim strFolderName as String
strFolderName = CreateObject("WScript.Shell").CurrentDirectory & "\X-ARC"
Dim objFSO As FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.FolderExists(strFolderName) Then
objFSO.CreateFolder(strFolderName)
End If |
Для пункта 2.1. есть параметры кнопки TC для извлечения из архива:
Для пункта 2.2 знаю, как переименовать распакованные файлы (учитывая, что WScript.Arguments(0) - это путь, куда были распакованы файлы):
Code: | Dim strPath as String
strPath = WScript.Arguments(0)
Dim objFSO As FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFolder As Folder
Set objFolder = objFSO.GetFolder(strPath)
Dim objFile As File
Dim strOldFileName As String
Dim strNewFileName As String
Dim strFilePath As String
If objFolder.Files.Count = 1 Then
For Each objFile In objFolder.Files
strOldFileName = objFile.Name
strFilePath = objFile.ParentFolder
'Имя первой родительской папки
strNewFileName = Right(strFilePath, Len(strFilePath) - InStrRev(strFilePath, "\", -1))
'Добавляем исходное расширение
strNewFileName = strNewFileName & "." & Right(strOldFileName, Len(strOldFileName) - InStrRev(strOldFileName, "."))
'Переименовываем файл
Name strFilePath & "\" & strOldFileName As strFilePath & "\" & strNewFileName
Next
End If |
|
|