Скрипты для Total Commander

  1. Offline

    Andrey_A

    Пользователь

    Posts: 275

    Скрипты - уникальный инструмент для достижения различных целей в работе с файлами и не только, особенно в файловом менеджере, даже если вы раньше об этом ничего не слышали и не знали, то путём простых движений вы можете оптимизировать свои действия
    Тема тестирования скриптов создана для увеличения функциональности Total Commander
    Всё это делается для тех, кто хочет экономить время и автоматизировать работу
    Огромное спасибо участникам, авторам и всем повлиявшим на тему
    #/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#
    В этой теме Каждый может выложить свой скрипт, написанный на любом языке: vbs, js, hta, au3,ahk, bat,cmd... - главное, чтобы он относился как-то к Total Commander, можно было им воспользоваться и к нему было должное описание к применению.
    #/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#
    В теме "Тестирование и заказ скриптов" Каждый может протестировать, дать свой комментарий (все комментарии из этой темы будут удаляться)...если есть интересная идея, вы так же можете поделиться ей в соседней теме и заказать скрипт, а вдруг она покажется интересной для авторов...
    #/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#



    Сообщение отредактировал LonerD 25 апреля 2017 - 04:38

    Читайте: Справочные материалы по работе c TC + Онлайн справка TC

    22 ноября 2011 - 13:03 / #1
  2. Offline

    Andrey_A

    Пользователь

    Posts: 275

    ReplaceInTextFilesFromFileList.vbs
    Поиск и замена в выделенных текстовых файлах из файл списка поиска и замен

    ' ReplaceInTextFilesFromFileList.vbs
    '========================   Описание   =====================================
    ' Поиск и замена в выделенных текстовых файлах из файл списка поиска и замен
    ' Синтаксис файл списка поиска и замен:
    ' ПОИСК=ЗАМЕНА
    ' 555=888
    ' 333=777
    ' и.т.д.
    ' т.е. во всех текстах файлов будет найдено 555 и заменено на 888, 333 на 777
    '========================  Параметры =====================================
    ' [файл список файлов] [файл список замен]
    ' %L "%%COMMANDER_PATH%%\ReplaceList.txt"
    '
    ' Автор:             Аверин Андрей
    ' Версия:          1.3 (2010 - 06.11.2011)
    ' Mail:                 Averin-And@yandex.ru
    ' Site:                  http://tc-image.3dn.ru
    '=======================================================================
    With WScript
    Cnt = .Arguments.Count
      If Cnt = 0 Then
        MsgBox "Не хватает параметров!" & vbNewLine &_
        "Должен быть минимум ОДИН параметр %L",_
         vbOKOnly & vbInformation, "Поиск и замена в текстах из файл списка "
        .Quit
      End If
      Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")

      If Cnt = 1 Then
        ListReplac = InputBox("Введите ПОЛНЫЙ\ПУТЬ\до\файл_списка.txt" & vbNewLine &_
        " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " & vbNewLine & "Синтаксис файл списка поиска и замен:" &_
        vbNewLine & "ПОИСК=ЗАМЕНА " & vbNewLine & "333=777" & vbNewLine & "Маня=Даня" &_
        vbNewLine & "и.т.д.", "Поиск и замена в текстах из файл списка  ", Clip)
        if Len(ListReplac) = 0 Then .Quit
      Else
        ListReplac = .Arguments(1)
      End if
    End With

    With CreateObject("Scripting.FileSystemObject")
      Set ListFile = .OpenTextFile(WScript.Arguments(0), 1)
      ListReplac = CreateObject("WScript.Shell").ExpandEnvironmentStrings(ListReplac)
      If Not .FileExists(ListReplac) Then WScript.Quit
      Set ListR = .OpenTextFile(ListReplac, 1)

      Do While Not ListFile.AtEndOfStream
         SelFile = ListFile.ReadLine
         On Error Resume Next
         Text = .OpenTextFile(SelFile, 1).ReadAll
         Do While Not ListR.AtEndOfStream
               SetR = ListR.ReadLine
               Text = Replace(CStr(Text), Left(SetR, InStr(SetR, "=") - 1), Right(SetR, Len(SetR) - InStr(SetR, "=")), 1, -1, 1)
         Loop
         .CopyFile SelFile, SelFile & ".bak" ' Закомментируйте если не нужна копия файлов
         .CreateTextFile(SelFile, True).Write(Text)
      Loop
    End With
    ListFile.Close : ListR.Close : Set ListFile = Nothing : Set ListR = Nothing : WScript.Quit
    Сообщение отредактировал Andrey_A 11 марта 2012 - 21:04

    Читайте: Справочные материалы по работе c TC + Онлайн справка TC

    23 ноября 2011 - 20:59 / #91
  3. Offline

    Andrey_A

    Пользователь

    Posts: 275

    ReplaceTextInFiles.au3
    Поиск кусков текста и замена

    ; RepleceTextInFiles.au3
    ; ================   Описание   ===========================
    ; Поиск кусков текста и замена
    ; ===============   Параметры   ===========================
    ; 1-й параметр: %L
    ; 2-й параметр: Количество полей поиска, если = 0, открывается диалог выбора количества полей
    ; 3-й параметр: Высота одного поля поиска
    ; ================   Примеры   ===========================
    ; %L 0 100
    ; %L 2 100
    ; Автор:             Loopback
    ; Версия:          1.0 (06.10.2010)
    ; ======================================================
    If $CmdLine[0] < 3 Then
        MsgBox (0, "", "Недостаточно параметров, должно быть 3.")
        Exit
    EndIf

    Global $gSrcCount = $CmdLine[2]
    Global $gSrcHeight = $CmdLine[3]

    Global $gClientHeight = @DesktopHeight - 30
    $aTrayPos = WinGetPos("[CLASS:Shell_TrayWnd]")
    If Not @error Then $gClientHeight = @DesktopHeight - $aTrayPos[3]

    If $gSrcCount = 0 Then
        $gBtnCount = 9; Количество кнопок
        $nGUIWidth = 6 + $gBtnCount * 24 + $gBtnCount * 5
        GUICreate("Выбор числа полей поиска", $nGUIWidth, 34, @DesktopWidth/2 - $nGUIWidth/2, -1)
        For $i = 0 To $gBtnCount - 1
            GUICtrlCreateButton($i+1, 5 + $i*24 + $i*5, 5, 24, 24)
        Next
        GUISetState(@SW_SHOW)
        While 1
           $nMsg = GUIGetMsg()
           Switch $nMsg
              Case -3
                Exit
              Case 3 To $gBtnCount + 2
                $gSrcCount = $nMsg - 2
                If $gClientHeight < $gSrcHeight * $gSrcCount + 140 Then
                   $gSrcHeight = Int(($gClientHeight - 140) / $gSrcCount)
                EndIf
                GUIDelete()
                ExitLoop
           EndSwitch
        Wend
    EndIf

    Global $aList  = _TCHLoadFileList($CmdLine[1])
    Global $gReplaces = 0, $gMask, $gBackups = False
    Global $gSrcEdit[$gSrcCount]
    Global Const $GUI_CHECKED = 1

    $nGUIHeight = $gSrcHeight * $gSrcCount + 109

    $hGUI = GUICreate("Поиск и замена", 563, $nGUIHeight, -1, -1)
    GUICtrlCreateLabel("Маска файлов", 8, 6, 78, 17)
    $edMask = GUICtrlCreateInput("*.*", 8, 24, 265, 21)
    GUICtrlCreateLabel("Текст для поиска", 8, 54, 94, 17)
    GUICtrlCreateLabel("Текст для замены", 288, 54, 98, 17)

    For $i = 0 To $gSrcCount - 1
        $gSrcEdit[$i] = GUICtrlCreateEdit("", 8, 72 + $gSrcHeight * $i, 265, $gSrcHeight)
    Next

    $edTrg = GUICtrlCreateEdit("", 288, 72, 265, $gSrcHeight * $gSrcCount)
    $cbCaseSence = GUICtrlCreateCheckbox("Учитывать регистр", 8, $gSrcHeight * $gSrcCount + 84, 137, 17)
    $cbBackups = GUICtrlCreateCheckbox("Создавать резервные копии", 150, $gSrcHeight * $gSrcCount + 84, 170, 17)
    $btnOK = GUICtrlCreateButton("OK", 400, $gSrcHeight * $gSrcCount + 79, 75, 25)
    $btnCancel = GUICtrlCreateButton("Отмена", 480, $gSrcHeight * $gSrcCount + 79, 75, 25)
    Global $AccelTable[1][2] = [["^{ENTER}", $btnOK]]
    GUISetAccelerators($AccelTable)

    GUISetState(@SW_SHOW)

    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case -3, $btnCancel
            Exit
          Case $btnOK
            $gMask = _MaskToRegexp(GUICtrlRead($edMask))
            $gBackups = BitAND(GUICtrlRead($cbBackups), $GUI_CHECKED)
            For $i = 1 To $aList[0]
                If StringRight($aList[$i], 1) = "\" Then
                    _DoFolder($aList[$i])
                Else
                    _DoFile($aList[$i])
                EndIf
            Next
            MsgBox (0, "", "Выполнено замен: " & $gReplaces, 0, $hGUI)
            Exit
       EndSwitch
    WEnd

    Func _DoFolder($sFolder)
        If $sFolder = "" Then Return
        Local $sDirs = ""
        Local $hSearch = FileFindFirstFile($sFolder & "*.*")
        If @error Then Return
        While 1
            $sFile = FileFindNextFile($hSearch)
            If @error Then ExitLoop
            If @extended Then
                $sDirs &= $sFolder & $sFile & "\" & @LF
                ContinueLoop
            EndIf
            _DoFile($sFolder & $sFile)
        Wend
        FileClose($hSearch)
       ; Обработку каталогов приходится делать отдельно,
       ; чтобы не оставлять открытый поисковый хэндл,
       ; их максимально может быть 64
        $aDirs = StringSplit($sDirs, @LF)
        For $i = 1 To $aDirs[0]
            _DoFolder($aDirs[$i])
        Next
    EndFunc

    Func _DoFile($sFile)
        If StringRegExp($sFile, $gMask) = 0 Then Return
        Local $sText = FileRead($sFile)
        Local $sSrc
        Local $nReplaces = 0
        For $i = 0 To $gSrcCount - 1
            $sSrc = GUICtrlRead($gSrcEdit[$i])
            If $sSrc = "" Then ContinueLoop
            $sText = StringReplace($sText, $sSrc, GUICtrlRead($edTrg), 0, _
                                   BitAND(GUICtrlRead($cbCaseSence), $GUI_CHECKED))
            $nReplaces += @extended
        Next
        If $nReplaces = 0 Then Return
        $gReplaces += $nReplaces
        If $gBackups Then FileCopy($sFile, $sFile & ".bak", 1); бэкап
        Local $hFile = FileOpen($sFile, 2)
        FileWrite($hFile, $sText)
        FileClose($hFile)
    EndFunc

    Func _MaskToRegexp($sMask)
        $sMask = StringRegExpReplace($sMask, "(\\|\.|\+|\^|\(|\)|\[|\]|\{|\}|\$)", "\\\1")
        $sMask = StringReplace($sMask, "?", ".")
        $sMask = StringReplace($sMask, "*", ".+?")
        Return("(?i)" & $sMask & "$")
    EndFunc

    Func _TCHLoadFileList($sFileName)
        Local $asList[1] = [0]
        Local $hfList = FileOpen($sFileName, 0)
        While 1
            $sLine = FileReadLine($hfList)
            If @error Then Exitloop
            ReDim $asList[UBound($asList)+1]
            $asList[UBound($asList)-1] = $sLine
        Wend
        FileClose($hfList)
        $asList[0] = UBound($asList)-1
        Return $asList
    EndFunc
    Сообщение отредактировал Andrey_A 11 марта 2012 - 21:08

    Читайте: Справочные материалы по работе c TC + Онлайн справка TC

    23 ноября 2011 - 21:00 / #92
  4. Offline

    Andrey_A

    Пользователь

    Posts: 275

    SpellChecker_Clipboard.vbs
    Орфографическая проверка текста в буфере обмена

    Читайте: Справочные материалы по работе c TC + Онлайн справка TC

    23 ноября 2011 - 21:01 / #93
  5. Offline

    Andrey_A

    Пользователь

    Posts: 275

    SpellChecker_PN.vbs
    Орфографическая проверка текста файла под курсором

    ' SpellChecker_PN.vbs
    '========================   Описание   =====================================
    ' Spell-Checker для файла под курсором. Требует MS Word
    ' Author: Steve Yandl & Аверин Андрей http://tc-image.3dn.ru
    ' Date: October 23, 2000 - 06.11.2011
    ' /////////////////////////////////////////////////////////////////
    ' Орфографическая проверка текста файла под курсором
    ' Параметры %P%N
    '========================================================================
    Dim oWD, RangeOriginal, RangeCorrected, Cnt, Status
    Set oWD = WScript.CreateObject("Word.Application")
    oWD.Visible = False
    If WScript.Arguments.Count = 0 Then
      MsgBox "Не хватает параметров! Должен быть Один параметр %P%N",_
       vbOKOnly & vbInformation, "Орфографическая проверка текста файла под курсором"
      WScript.Quit
    End If
    oWD.Documents.Open WScript.Arguments(0), False, True
    On Error Resume Next
    oWD.Selection.WholeStory
    If err.number<>0 then
        MsgBox "Буфер обмена пуст!"
        oWD.ActiveDocument.Close wdDoNotSaveChanges
        oWD.Quit
        Set oWD=Nothing :    Set oWD=Nothing :     WScript.Quit
    End If

    Set RangeOriginal=oWD.ActiveDocument.Range(0,oWD.Selection.End)
    If oWD.CheckSpelling(RangeOriginal)=False Then
        oWD.ActiveDocument.CheckSpelling
        Set RangeCorrected = oWD.ActiveDocument.Range(0,oWD.Selection.End)
        RangeCorrected.copy
        If RangeCorrected.Words.Count>7 Then
            Cnt = RangeCorrected.Words.Count
            Status= "Текст, начинающийся с: "&_
            RangeCorrected.Words.Item(1) & " "& RangeCorrected.Words.Item(2) &" "&_
            RangeCorrected.Words.Item(3) &"....."& vbCRLF & "и заканчивающийся: ....."&_
            RangeCorrected.Words.Item(Cnt-2) &" "& RangeCorrected.Words.Item(Cnt-1)&_
            " "&RangeCorrected.Words.Item(Cnt)& vbCRLF & "проверен. "&_
            "Исправленный текст скопирован в буфер обмена."
        Else
            Status= "<< "&RangeCorrected&" >>"&vbCRLF&"был проверен."&_
            " Исправленный текст скопирован в буфер обмена."
        End If
    Else
        Status= "Проверка завершена. Текст не содержит ошибок."
    End If

    oWD.ActiveDocument.Close wdDoNotSaveChanges
    oWD.Quit : Set oWD=Nothing : MsgBox Status
    Сообщение отредактировал Andrey_A 11 марта 2012 - 21:09

    Читайте: Справочные материалы по работе c TC + Онлайн справка TC

    23 ноября 2011 - 21:03 / #94
  6. Offline

    Andrey_A

    Пользователь

    Posts: 275

    SplitByLineTextFile.vbs
    Разрезка текстового файла на строки и запись их в файлы
    Используется TCMC.exe - файл можете скачать в шапке темы

    ' SplitByLineTextFile.vbs
    '===================   Описание   ============================
    ' Разрезка текстового файла на строки и запись их в файлы
    '===================   Примеры   ============================
    ' Параметр: путь\к\файлу
    ' %P%N

    ' Автор:             ? & Аверин Андрей
    ' Версия:          1.0 (28.04.2011)
    ' Mail:                 Averin-And@yandex.ru
    ' Site:                  http://tc-image.3dn.ru
    '==========================================================
    With WScript
      If .Arguments.Count = 0 Then
        MsgBox "Не хватает параметров!" & vbNewLine & "Должен быть Один параметр %P%N",_
        vbOKOnly & vbInformation, "Разрезание текстового файла" : .Quit
      End If
      InFile = .Arguments(0)
    End With

    With CreateObject("Scripting.FileSystemObject")
      Set ts = .OpenTextFile(InFile,1) : Cnt = 0
      Do Until ts.AtEndOfStream
        .CreateTextFile(InFile & "." & CStr(Cnt), True).WriteLine(ts.ReadLine) : Cnt = Cnt + 1
      Loop
    End With
    CreateObject("WScript.Shell").Exec("%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMC.exe 100 CM540")
    ts.Close : Set ts = Nothing : WScript.Quit
    Сообщение отредактировал Andrey_A 11 марта 2012 - 21:09

    Читайте: Справочные материалы по работе c TC + Онлайн справка TC

    23 ноября 2011 - 21:05 / #95
  7. Offline

    Andrey_A

    Пользователь

    Posts: 275

    SummaTextFiles.vbs
    Собирает выделенные текстовые файлы в один
    Используется FunctionsPlus.vbs - файл можете скачать в шапке темы

    ' SummaTextFiles.vbs
    '========================   Описание   =====================================
    ' Собирает выделенные текстовые файлы в один
    '=======================   Параметры  =====================================
    ' 1-й параметр: Путь гда создавать общий файл
    ' 2-й параметр: Список путей файлов
    ' 3-й параметр: Имя создаваемого файла
    ' 4-й параметр: Разделитель между содержанием файлов
    '========================   Примеры   =====================================
    ' %p %L
    ' %p %L "All.txt"
    ' %p %L "All.txt" "========"

    ' Автор:             Аверин Андрей
    ' Версия:          1.2 (14.09.2011 - 10.03.2012)
    ' Mail:                 Averin-And@yandex.ru
    ' Site:                  http://tc-image.3dn.ru
    '========================================================================
    With WScript
      Cnt = .Arguments.Count
      If Cnt > 1 Then
        nFolder = .Arguments(0)
        tFile = .Arguments(1)
        If Cnt > 2 Then
          Name = .Arguments(2)
          If Cnt > 3 Then Delim  = .Arguments(3)
        End If
      Else
        MsgBox "Не хватает параметров!" & vbNewLine &_
        "Должно быть прописано минимум 2 параметра %p %L",_
        vbOKOnly & vbInformation, "Объединение файлов"
        .Quit
      End If

      If Len(Name) = 0 Then
        Name = InputBox("Введите имя файла", "Объединение файлов", "All.txt")
        if Len(Name) = 0 Then .Quit
      End If
    End With

    With CreateObject("Scripting.FileSystemObject")
      Set TempFile = .OpenTextFile(tFile, 1)
      Do While Not TempFile.AtEndOfStream
        On Error Resume Next
          .OpenTextFile(nFolder & Name, 8, True).Write .OpenTextFile(TempFile.ReadLine, 1).ReadAll & vbNewLine & Delim & vbNewLine
      Loop
    End With
    TempFile.Close : Set TempFile = Nothing : WScript.Quit
    Сообщение отредактировал Andrey_A 11 марта 2012 - 21:10

    Читайте: Справочные материалы по работе c TC + Онлайн справка TC

    23 ноября 2011 - 21:07 / #96
  8. Offline

    Andrey_A

    Пользователь

    Posts: 275

    Unpack_b64_mime_uue.vbs
    Распаковывает mime, uue, b64 текст из буфера обмена в текущую папку
    Используется TCMCWindow.exe - файл можете скачать в шапке темы

    ' Unpack_b64_mime_uue.vbs
    '========================   Описание   =====================================
    ' Распаковывает mime, uue, b64 текст из буфера
    '=======================   Параметры  =====================================
    ' 1-й параметр: куда распаковывать
    ' 2-й параметр: расширение  (xxe, uue, b64)
    '========================   Примеры   =====================================
    ' %p "uue" - распаковывает  uue текст в текущую папку
    ' основан на коде (c) 2010, lev
    ' Автор:             Аверин Андрей
    ' Версия:          1.0 (04.11.2011)
    ' Mail:                 Averin-And@yandex.ru
    ' Site:                  http://tc-image.3dn.ru
    '====================   Изменяемые пути   ==================================
    TCMSW = "%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMCWindow.exe"
    '========================================================================
    With WScript
      If .Arguments.Count < 2 Then
        MsgBox "Не хватает параметров! Должно быть ДВА параметра %p ''uue''", _
        vbOKOnly & vbInformation,"Распаковывает mime, uue, b64 текст из буфера обмена"
        .Quit
      End If
      Set FSO = CreateObject("Scripting.FileSystemObject")
      Ext = LCase(.Arguments(1)) : Name = FSO.GetTempName() & "." & Ext
      TempFile = .Arguments(0) & Name
    End With
    Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
    lClip = LCase(Clip)
    If Len(Clip) < 10 Then WsEnd

    If (InStr(lClip, "base64") = 0 Or InStr(lClip, "content-transfer-encoding") = 0) And _
    (InStr(lClip, "end") = 0 Or InStr(lClip, "sum") = 0 Or InStr(lClip, "-r/size") = 0) Then WsEnd

    Clip = RegExpReplace(Clip, "( *)(" & vbNewLine & ")", "$2") ' удаление концевых пробелов

    FSO.CreateTextFile(TempFile, True).Write Clip

    With CreateObject("WScript.Shell")
      .Exec(TCMSW & Chr(32) &_
                          Chr(34) & "ttcmc=150 CM540" & Chr(34) & Chr(32) &_
                          Chr(34) & "pause=50" & Chr(34) & Chr(32) &_
                          Chr(34) & "clpup=" & Name & Chr(34) & Chr(32) &_
                          Chr(34) & "ttcmc=50 CM540 CM2033" & Chr(34)  & Chr(32) &_
                          Chr(34) & "pause=50" & Chr(34) & Chr(32) &_
                          Chr(34) & "{DOWN}" & Chr(34) & Chr(32) &_
                          Chr(34) & "ttcmc=50 CM509" & Chr(34) & Chr(32) &_
                          Chr(34) & "{BS}" & Chr(34) & Chr(32) &_
                          Chr(34) & "{ENTER}" & Chr(34) & Chr(32))
      WScript.Sleep 2000 : FSO.DeleteFile TempFile
      .Exec(TCMSW & Chr(32) & Chr(34) & "ttcmc=50 CM540" & Chr(34))
    End With
    WsEnd

    Function RegExpReplace(pText, pFindStr, pNewStr)
      With New RegExp
        .Pattern = pFindStr : .IgnoreCase = True : .Global = True
        RegExpReplace = .Replace(pText, pNewStr)
      End With
    End Function

    Sub WsEnd : Set FSO = Nothing : WScript.Quit : End Sub
    Сообщение отредактировал Andrey_A 11 марта 2012 - 21:10

    Читайте: Справочные материалы по работе c TC + Онлайн справка TC

    23 ноября 2011 - 21:10 / #97
  9. Offline

    Andrey_A

    Пользователь

    Posts: 275

    Arhive.vbs
    Архивирование выделенных файлов и папок с помощью WCX плагинов ТС
    Используется TCMCWindow.exe - файл можете скачать в шапке темы

    [more="Arhive.vbs"]
    ' Arhive.vbs
    '========================   Описание   =====================================
    ' Архивирование выделенных файлов и папок с помощью WCX плагинов ТС
    '=======================   Параметры  =====================================
    ' 1-й параметр: путь\куда\архивировать
    ' 2-й параметр: имя архива
    ' 3-й параметр: расширение архива
    '========================   Примеры   =====================================
    ' %t "%O" "rar"

    ' Автор:             Аверин Андрей
    ' Версия:          1.4 (20.01.2010 - 02.11.2011)
    ' Mail:                 Averin-And@yandex.ru
    ' Site:                  http://tc-image.3dn.ru
    '====================   Изменяемые пути   ==================================
    TCMSW = "%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMCWindow.exe"
    '========================================================================
    With WScript
      If .Arguments.Count < 3 Then
        MsgBox "Не хватает параметров! Должно быть ТРИ параметра" &_
        vbNewLine & "Пример: %t ''%O'' ''rar''", _
        vbOKOnly & vbInformation,"Архивирование выделенных файлов и папок"
        .Quit
      End If
      Path = .Arguments(0) : Name = .Arguments(1) : Arhive = .Arguments(2)
    End With

    P = LineSym(Path) : N = LineSym(Name)
    Lines = "{DEL}" & Arhive & ":" & Chr(34) & P & N & "." & Arhive & Chr(34)
    If Arhive = "z" Then Lines = Lines & "{HOME}" & "_"
    CreateObject("WScript.Shell").Exec(TCMSW & Chr(32) & Chr(34) & "ttcmc=CM508" &_
           Chr(34) & Chr(32) & Chr(34) & "pause=100" & Chr(34) & Chr(32) & Lines & "{ENTER}")
    WScript.Quit

    Function LineSym(Line)
      Stroka = "+^%~(){}[]"
      For i = 1 To Len(Line)
        s = Mid(Line, i, 1)
        If InStr(Stroka, s) > 0 Then
          If s = "%" Then
            s="{" & s & "}" & "{" & s & "}"
          Else
            s="{" & s & "}"
          End If
        End If
        Ls = Ls & s
      Next
      LineSym = Ls
    End Function
    [/more]
    Сообщение отредактировал Andrey_A 11 марта 2012 - 21:11

    Читайте: Справочные материалы по работе c TC + Онлайн справка TC

    23 ноября 2011 - 21:14 / #98
  10. Offline

    Andrey_A

    Пользователь

    Posts: 275

    ArhiveCrypt.vbs
    Создание зашифрованных архивов выделенных файлов и папок с помощью WCX плагиновТС
    Используется TCMCWindow.exe - файл можете скачать в шапке темы

    ' ArhiveCrypt.vbs
    '========================   Описание   =====================================
    ' Создание зашифрованных архивов выделенных файлов и папок с помощью WCX плагиновТС
    '=======================   Параметры  =====================================
    ' 1-й параметр: путь\куда\архивировать
    ' 2-й параметр: имя архива
    ' 3-й параметр: расширение архива
    '========================   Примеры   =====================================
    ' %t "%O" "rar"

    ' Автор:             Аверин Андрей
    ' Версия:          1.4 (20.01.2010 - 02.11.2011)
    ' Mail:                 Averin-And@yandex.ru
    ' Site:                  http://tc-image.3dn.ru
    '====================   Изменяемые пути   ==================================
    TCMSW = "%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMCWindow.exe"
    '========================================================================
    With WScript
      If .Arguments.Count < 3 Then
        MsgBox "Не хватает параметров! Должно быть ТРИ параметра" &_
        vbNewLine & "Пример: %t ''%O'' ''rar''", _
        vbOKOnly & vbInformation,"Создание самораспаковывающих архивов выделенного"
        .Quit
      End If
      Path = .Arguments(0) : Name = .Arguments(1) : Arhive = .Arguments(2)
    End With

    P = LineSym(Path) : N = LineSym(Name)
    Lines = "{DEL}" & Arhive & ":" & Chr(34) & P & N & "." & Arhive & Chr(34)
    If Arhive = "z" Then Lines = Lines & "{HOME}" & "_"
    CreateObject("WScript.Shell").Exec(TCMSW & Chr(32) & Chr(34) & "ttcmc=CM508" &_
                              Chr(34) & Chr(32) & Chr(34) & "pause=100" & Chr(34) & Chr(32) & Lines &_
                              Chr(32) & Chr(34) & "{TAB 7}" & Chr(34)  &_
                              Chr(32) & Chr(34) & "{SPACE}" & Chr(34)  &_
                              Chr(32) & Chr(34) &  "{ENTER}" & Chr(34))
    WScript.Quit

    Function LineSym(Line)
      Stroka = "+^%~(){}[]"
      For i = 1 To Len(Line)
        s = Mid(Line, i, 1)
        If InStr(Stroka, s) > 0 Then
          If s = "%" Then
            s="{" & s & "}" & "{" & s & "}"
          Else
            s="{" & s & "}"
          End If
        End If
        Ls = Ls & s
      Next
      LineSym = Ls
    End Function
    Сообщение отредактировал Andrey_A 11 марта 2012 - 21:11

    Читайте: Справочные материалы по работе c TC + Онлайн справка TC

    23 ноября 2011 - 21:41 / #99
  11. Offline

    Andrey_A

    Пользователь

    Posts: 275

    ArhiveEXE.vbs
    Создание самораспаковывающих архивов выделенных файлов и папок с помощью WCX плагинов ТС
    Используется TCMCWindow.exe - файл можете скачать в шапке темы

    ' ArhiveEXE.vbs
    '========================   Описание   =====================================
    ' Создание самораспаковывающих архивов выделенных файлов и папок с помощью WCX плагинов ТС
    '=======================   Параметры  =====================================
    ' 1-й параметр: путь\куда\архивировать
    ' 2-й параметр: имя архива
    ' 3-й параметр: расширение архива
    '========================   Примеры   =====================================
    ' %t "%O" "rar"

    ' Автор:             Аверин Андрей
    ' Версия:          1.4 (20.01.2010 - 02.11.2011)
    ' Mail:                 Averin-And@yandex.ru
    ' Site:                  http://tc-image.3dn.ru
    '====================   Изменяемые пути   ==================================
    TCMSW = "%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMCWindow.exe"
    '========================================================================
    With WScript
      If .Arguments.Count < 3 Then
        MsgBox "Не хватает параметров! Должно быть ТРИ параметра" &_
        vbNewLine & "Пример: %t ''%O'' ''rar''", _
        vbOKOnly & vbInformation,"Создание самораспаковывающих архивов выделенного"
        .Quit
      End If
      Path = .Arguments(0) : Name = .Arguments(1) : Arhive = .Arguments(2)
    End With

    P = LineSym(Path) : N = LineSym(Name)
    Lines = "{DEL}" & Arhive & ":" & Chr(34) & P & N & "." & Arhive & Chr(34)
    If Arhive = "z" Then Lines = Lines & "{HOME}" & "_"
    CreateObject("WScript.Shell").Exec(TCMSW & Chr(32) & Chr(34) & "ttcmc=CM508" &_
                              Chr(34) & Chr(32) & Chr(34) & "pause=100" & Chr(34) & Chr(32) & Lines &_
                              Chr(32) & Chr(34) & "{TAB 5}" & Chr(34)  &_
                              Chr(32) & Chr(34) & "{SPACE}" & Chr(34)  &_
                              Chr(32) & Chr(34) &  "{ENTER}" & Chr(34))
    Function LineSym(Line)
      Stroka = "+^%~(){}[]"
      For i = 1 To Len(Line)
        s = Mid(Line, i, 1)
        If InStr(Stroka, s) > 0 Then
          If s = "%" Then
            s="{" & s & "}" & "{" & s & "}"
          Else
            s="{" & s & "}"
          End If
        End If
        Ls = Ls & s
      Next
      LineSym = Ls
    End Function
    Сообщение отредактировал Andrey_A 11 марта 2012 - 21:12

    Читайте: Справочные материалы по работе c TC + Онлайн справка TC

    23 ноября 2011 - 21:42 / #100

Статистика форума, пользователей онлайн: 0 (за последние 30 минут)

---
Создано тем
107
Всего сообщений
4048
Пользователей
99000
Новый участник
termojader