Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Обмен кнопками 
Author Message
garmonist



PostPosted: Fri Apr 23, 2010 15:25    Post subject: Reply with quote

Перечитал всю тему. Решения нашел только частичные.

Помогите, пожалуйста, создать код для двух кнопок:

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 для извлечения из архива:
Code:
x %N "%O"\


Для пункта 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
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group