Script Request

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

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

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

Сообщение Flasher »

LonerD писал(а):распаковка выделенного в каталог, в котором лежит архив
противоречит
LonerD писал(а):выделенное распаковывается в каталог рядом с архивом
Короче, что-то вроде склейки этого и этого?
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

противоречит
Подправил.
Короче, что-то вроде склейки этого и этого?
Первый из указанных скриптов - совсем не то. Нужна не рекурсивная распаковка нескольких архивов, а распаковка тех файлов, которые мы выделили, находясь внутри архива (как именно должна происходить распаковка - описано в последнем абзаце реквеста).
Второй - да, можно взять за основу и расширить его функционал:
1. Сделать защиту от дурака. Если файл находится в корневом каталоге диска или выделена строка перехода на уровень выше (то есть переместить на уровень вверх невозможно) - ничего не делать и не выбивать ошибку. Сейчас скрипт выбивает ошибку.
2. Добавить ключом возможность не только перемещать, но и копировать на уровень вверх.
3. Если мы находимся внутри архива, то выделенное распаковывается в тот каталог, в котором лежит архив.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

LonerD писал(а):Первый из указанных скриптов - совсем не то.
Согласен. Поспешил. Пиши список используемых утилит (7-zip.exe, FreeArc, NanoZIP и т.д.).
LonerD писал(а):Сделать защиту от дурака. Если файл находится в корневом каталоге диска или выделена строка перехода на уровень выше (то есть переместить на уровень вверх невозможно) - ничего не делать и не выбивать ошибку. Сейчас скрипт выбивает ошибку.
Это я во многих скриптах делаю. Там просто забыл про это.
2. Ок.
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

[s]и когда я хотел завязать,они снова затянули меня обратно[/s]
И когда я только доделал скрипт - тему благополучно закрыли, а потом ещё и wincmd на сутки отключили. Потому выложу туточки.
В общем, здесь был запрос про архивацию через Тотал именно с помощью одной кнопочки, именно через 7-Zip в архив zip.

Вариант с использованием Тотала и утилиты TCIMG.
Если хочется архивировать в zip именно через 7-Zip архиватор (а у него есть свои фишки, в частности степень архивации zip лучше, чем другие архиваторы), то расширение zip в Тотале должно быть настроено на плагин Total7Zip, и должен быть отключён встроенный zip-упаковщик.
Собственно, скрипт универсальный и позволяет создавать архивы с любым расширением через установленные в Тотал wcx-плагины.
Для запрошенного действия - параметры запуска %T "%O" "" 0 0

Скрипт:
http://dreamlair.net/download/ArhiveDreamLair.vbs
(модераторы, перепечатайте скрипт на форум, раз уж мне это непозволительно).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

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

Сообщение Flasher »

Тут запрос:

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

'=====================================================================================
' Cоздание папки/файла c буферным именем и возможностью перехода

' Условие: путь запуска очистить
' Возможные параметры: <переходить к элементу: 1> <расширение файла, если - файл>
' Примеры: <пусто>  |  1  |  "" lst  |  1 txt
'=====================================================================================
With WScript.Arguments
  C = .Count : If C > 0 Then Open = .Item(0) : If C > 1 Then Ext = .Item(1)
End With
With CreateObject("WScript.Shell")
  P = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
  A = .RegRead(P) : CD = .CurrentDirectory & "\"
  If A > 0 Then .RegWrite P, 0, "REG_DWORD"
  C = Trim(CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text"))
  If A > 0 Then .RegWrite P, A, "REG_DWORD"
End With
If C <> "" Then
  If InStr(C, vbLf) > 0 Then C = Left(C, InStr(C, vbCr) - 1)
  R C, """", "''" : R C, "|", "-" : R C, ":", " -"
  R C, ";", ","   : R C, "\", "_" : R C, "/", "_" : R C, "?", "_"
  With CreateObject("Scripting.FileSystemObject")
    Const M = 1
    If Ext = "" Then
      Name = C
      Do While .FolderExists(CD & Name)
        l = l + 1 : If l < 10^M Then PFx = Right(String(M, "0") & l, M) Else PFx = l
        Name = C & " (" & PFx & ")"
      Loop : .CreateFolder(CD & Name)
    Else
      Name = C & "." & Ext
      Do While .FileExists(CD & Name)
        l = l + 1 : If l < 10^M Then PFx = Right(String(M, "0") & l, M) Else PFx = l
        Name = C & " (" & PFx & ")." & Ext
      Loop : .CreateTextFile(CD & Name)
    End If
  End With
  If Open = "" Then CreateObject("WScript.Shell").SendKeys "^R" Else _
CreateObject("WScript.Shell").Exec "%COMMANDER_EXE% /O /S /L=""" & CD & Name & "\'"""
End If : Sub R(N, A, B) : N = Replace(N, A, B) : End Sub
Последний раз редактировалось Flasher Пн ноя 12, 2012 19:57, всего редактировалось 2 раза.
berya
Сообщения: 46
Зарегистрирован: Вт ноя 15, 2011 22:20
Откуда: kiev

Сообщение berya »

Добрый вечер.

Выдает ошибку

---------------------------
Windows Script Host
---------------------------
Сценарий: D:\Program Files (x86)\Total Commander\VBS\name2.vbs
Строка: 10
Символ: 3
Ошибка: Не удается открыть для чтения раздел реестра "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407".
Код: 80070002
Источник: WshShell.RegRead

---------------------------
ОК
---------------------------

[mod="Avada"]Это и ряд последующих сообщений перенесены из обсуждения темы "Обмен кнопками" в более подходящее место.[/mod]
Аватара пользователя
AlexTex
Сообщения: 42
Зарегистрирован: Чт июл 10, 2008 19:00

Сообщение AlexTex »

Flasher
Огромное спасибо!
Работает с параметром "%P", если поставить "%P" | "%T" txt выдает "Недопустимое имя или номер файла".
А можно сделать так, чтобы папка сразу открывалась?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

berya
Хм. А винда какая? IE установлен в системе?
AlexTex писал(а):если поставить "%P" | "%T" txt
| - это разделитель между примерами. :D Написано же "Примеры".
Выше указаны параметры по предназначению.
berya
Сообщения: 46
Зарегистрирован: Вт ноя 15, 2011 22:20
Откуда: kiev

Сообщение berya »

Windows 7 Ultimate x64 Ru
IE установлен в системе

Добавлено спустя 27 минут:

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

Сообщение Flasher »

berya писал(а):Проблема решена - "настроить зоны безопасности "
Можно поконкретней? Не очень понимаю, почему нет доступа к той ветке. Какая опция помогла?
berya
Сообщения: 46
Зарегистрирован: Вт ноя 15, 2011 22:20
Откуда: kiev

Сообщение berya »

параметры безопастности - зона Интернета - "разрешить програмный доступ к буферу обмена" - включить[/img]

Добавлено спустя 21 секунду:

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

Сообщение Flasher »

berya
Дело в том, что тот ключ в реестре и есть включение доступа к буферу. Странные дела на x64 творяться. Тут что-то другое..
Вообще, я, конечно, могу hta задействовать через js, но не уверен, что это поможет, т.к. берётся тот же объект.
berya
Сообщения: 46
Зарегистрирован: Вт ноя 15, 2011 22:20
Откуда: kiev

Сообщение berya »

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

Сообщение Flasher »

berya
О как. А какие?
Ответить