Script Request

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Ответ на запрос:

Код: Выделить всё

'==================== VBS ====================
' Сравнение одноимённых каталогов в панелях ТС
' Условие:   Путь запуска — пустой
' Параметры: %Z%N %X"%P" "%T"
'=============================================
Set A = WSH.Arguments : If A.Count < 3 Then WSH.Quit
If A(1) = A(2) Then WSH.Quit
With CreateObject("Scripting.FileSystemObject")
  If StrComp(.GetAbsolutePathName("") & "\", A(1)) Then _
  AP = 2 : NP = 1 Else AP = 1 : NP = 2
  If Not .FolderExists("\\?\" & A(AP) & A(0)) Then WSH.Quit
  Check = Not .FolderExists("\\?\" & A(NP) & A(0))
End With
With CreateObject("WScript.Shell")
  If Check Then .Popup "В другой панели нет одноимённого каталога!",_
  1.7, " Сравнение/синхронизация одноимённых каталогов      ", 4144 : WSH.Quit
  .Run """%COMMANDER_EXE%"" /S=S:= """ & A(1) & A(0) & """ """ & A(2) & A(0) & """"
End With
Скрипт лучше обычной кнопки, т.к. как не будет выводить окно синхронизации в ложных ситуациях: курсор на файле, [..] или папке без наличия одноимённой в другой панели.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
krmit
Сообщения: 7
Зарегистрирован: Пт ноя 08, 2019 23:01

Сообщение krmit »

Здравствуйте.
Необходим скрипт, распаковывающий определённый архив из списка в активную панель. Список (архивы 7z с полными путями, желательно внутри самого скрипта и с возможностью добавления/удаления позиций) пронумерован, номер необходимого архива передаётся как параметр.
Или, если со списком не получится, то распаковка определённого архива в активную панель.
Спасибо.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

krmit
Тут принято начинать с поиска. Ищите темы:
Рекурсивная распаковка
Кнопки для 7-Zip
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
krmit
Сообщения: 7
Зарегистрирован: Пт ноя 08, 2019 23:01

Сообщение krmit »

Flasher
Предварительно просмотрел в том числе и эти две темы, ничего похожего не нашел...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

krmit
Эти темы прежде всего соответствуют профилю вопроса.
Выделенные файлы там формируются из временного списка. Ничего не мешает заменить параметр путём к списку с соотв. кодировкой.
Зачем нумеровать список, куда и для чего передавать параметр с номером и удалять какие-то позиции, вы можете объяснить там.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
A.N.T.
Сообщения: 190
Зарегистрирован: Сб июл 01, 2006 08:50

Сообщение A.N.T. »

Нужен скрипт для упаковки вложенных папок в zip.

Структура такая:
...
D:\Folder_1\result\
D:\Folder_2\result\
D:\Folder_3\result\
D:\Folder_4\result\
...

При выделении Folder_1, Folder_2 и т.д. и запуске скрипта, папки result должны паковаться в result.zip, архивы должны находиться в том же каталоге что и папка result. Если архив существует он должен заменяться новым.
Версия TC 9.50
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Код: Выделить всё

'================================ VBS ================================
' Упаковать подкаталоги в одноимённые zip-архивы в выбранных каталогах
' Параметры: %WL "<имя подкаталога>"
'=====================================================================
Option Explicit : Dim A, Mask, FSO, ShA, List, Str, Arch
Set A = WSH.Arguments : If A.Count Then Mask = A(1) Else WSH.Quit
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ShA = GetObject("new:{9BA05972-F6A8-11CF-A442-00A0C90A8F39}").Item.document.Application
Set List = FSO.OpenTextFile(A(0),,,-1)
Do: Str = List.ReadLine
  If Right(Str, 1) = "\" Then
  If FSO.FolderExists(Str & Mask) Then
    Arch = Str & Mask & ".zip"
    With FSO.CreateTextFile(Arch, 1) .Write "PK" & String(17, Chr(0)) :.Close: End With
    ShA.NameSpace(Arch).CopyHere Str & Mask, 13332
  End If
  End If
Loop Until List.AtEndOfStream : List.Close
Set List = Nothing : Set FSO = Nothing : Set ShA = Nothing
Последний раз редактировалось Flasher Вт янв 14, 2020 01:01, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
A.N.T.
Сообщения: 190
Зарегистрирован: Сб июл 01, 2006 08:50

Сообщение A.N.T. »

Flasher
Благодарю! :)
WindR
Сообщения: 35
Зарегистрирован: Сб дек 21, 2019 13:38

Скрипт для поиска файла под курсором в другой панели

Сообщение WindR »

Прошу помочь со скриптом для поиска файла под курсором в противоположной панели, в том числе и в архивах.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Код: Выделить всё

'=================== VBS ====================
' Поиск подкурсорного объекта в другой панели
' Параметры: %Z%N "%T" [/a]
' /a — ключ добавляет поиск в архивах.
'============================================
Set A = WSH.Arguments
If A.UnNamed.Count = 2 Then T = A(1) Else WSH.Quit
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FolderExists(T) Then WSH.Quit
Set WSS = CreateObject("WScript.Shell")
If A.Named.Exists("a") - ((Split(Split(FSO.OpenTextFile(WSS.Environment("Process")("COMMANDER_INI"))._
ReadAll, "LastSearchOptions=")(1), vbCr)(0) And 1024) = 0) = 0 Then Keys = "{TAB 6} "
WSS.Run "mshta ""javascript:close(clipboardData.setData('text','" & A(0) & "'))""", 7, 1
WSS.SendKeys "{TAB}" : PID = WSS.Exec("%COMMANDER_EXE% /O /S=F """ & T & """").ProcessID
Do : W = WSS.AppActivate(PID) : Loop Until W : WSS.SendKeys "^v" & Keys & "~%-"
Set WSS = Nothing : Set FSO = Nothing
Последний раз редактировалось Flasher Пн июн 01, 2020 21:44, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
WindR
Сообщения: 35
Зарегистрирован: Сб дек 21, 2019 13:38

Сообщение WindR »

Flasher
Спасибо.
А есть возможность обойти ограничение тотала и получить имя из файла в архиве? Другими словами в исходной панели открыт архив.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

WindR
Добавил %Z, из головы вылетело.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
WindR
Сообщения: 35
Зарегистрирован: Сб дек 21, 2019 13:38

Сообщение WindR »

Flasher
Благодарю. Мне кажется достойно добавления в TCKB.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

WindR
В разделе много чего есть, что туда имеет ещё больший смысл добавить, просто с обновлениями движка там возник ряд нерешённых проблем (подсветка синтасиса, заливка файлов и т. д.), из-за этого планы по массовому заливанию скриптов и правки нек. страниц лениво зависли.
Кстати, о птицах, если этот пункт проделан, найденное на панель вываливается?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
WindR
Сообщения: 35
Зарегистрирован: Сб дек 21, 2019 13:38

Сообщение WindR »

Flasher писал(а):найденное на панель вываливается?
Да, хитрость работает во всех раскладках.
Ответить