Страница 29 из 42

Добавлено: Пт июл 13, 2012 17:06
Flasher
LonerD писал(а):распаковка выделенного в каталог, в котором лежит архив
противоречит
LonerD писал(а):выделенное распаковывается в каталог рядом с архивом
Короче, что-то вроде склейки этого и этого?

Добавлено: Пт июл 13, 2012 19:29
LonerD
противоречит
Подправил.
Короче, что-то вроде склейки этого и этого?
Первый из указанных скриптов - совсем не то. Нужна не рекурсивная распаковка нескольких архивов, а распаковка тех файлов, которые мы выделили, находясь внутри архива (как именно должна происходить распаковка - описано в последнем абзаце реквеста).
Второй - да, можно взять за основу и расширить его функционал:
1. Сделать защиту от дурака. Если файл находится в корневом каталоге диска или выделена строка перехода на уровень выше (то есть переместить на уровень вверх невозможно) - ничего не делать и не выбивать ошибку. Сейчас скрипт выбивает ошибку.
2. Добавить ключом возможность не только перемещать, но и копировать на уровень вверх.
3. Если мы находимся внутри архива, то выделенное распаковывается в тот каталог, в котором лежит архив.

Добавлено: Сб июл 14, 2012 23:57
Flasher
LonerD писал(а):Первый из указанных скриптов - совсем не то.
Согласен. Поспешил. Пиши список используемых утилит (7-zip.exe, FreeArc, NanoZIP и т.д.).
LonerD писал(а):Сделать защиту от дурака. Если файл находится в корневом каталоге диска или выделена строка перехода на уровень выше (то есть переместить на уровень вверх невозможно) - ничего не делать и не выбивать ошибку. Сейчас скрипт выбивает ошибку.
Это я во многих скриптах делаю. Там просто забыл про это.
2. Ок.

Добавлено: Сб авг 18, 2012 22:14
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
(модераторы, перепечатайте скрипт на форум, раз уж мне это непозволительно).

Добавлено: Сб авг 18, 2012 23:34
Flasher
LonerD
Опять выпрыгиваниями окон балуемся? :wink:
Написал бы, я бы слегка этот скрипт поправил, хотя лично мне матрёшки (одна папка в архиве) не нужны, я хочу, заходя в некогда упакованный архив, сразу видеть корневую структуру бывшего каталога, воссоздающегося элементарно при последующей распаковке уже другим скриптом.

Добавлено: Пт ноя 09, 2012 18:30
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

Добавлено: Пт ноя 09, 2012 23:18
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]

Добавлено: Пт ноя 09, 2012 23:20
AlexTex
Flasher
Огромное спасибо!
Работает с параметром "%P", если поставить "%P" | "%T" txt выдает "Недопустимое имя или номер файла".
А можно сделать так, чтобы папка сразу открывалась?

Добавлено: Пт ноя 09, 2012 23:24
Flasher
berya
Хм. А винда какая? IE установлен в системе?
AlexTex писал(а):если поставить "%P" | "%T" txt
| - это разделитель между примерами. :D Написано же "Примеры".
Выше указаны параметры по предназначению.

Добавлено: Сб ноя 10, 2012 00:23
berya
Windows 7 Ultimate x64 Ru
IE установлен в системе

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

Проблема решена - "настроить зоны безопасности "
Спасибо

Добавлено: Сб ноя 10, 2012 00:35
Flasher
berya писал(а):Проблема решена - "настроить зоны безопасности "
Можно поконкретней? Не очень понимаю, почему нет доступа к той ветке. Какая опция помогла?

Добавлено: Сб ноя 10, 2012 00:45
berya
параметры безопастности - зона Интернета - "разрешить програмный доступ к буферу обмена" - включить[/img]

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

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

Добавлено: Сб ноя 10, 2012 00:48
Flasher
berya
Дело в том, что тот ключ в реестре и есть включение доступа к буферу. Странные дела на x64 творяться. Тут что-то другое..
Вообще, я, конечно, могу hta задействовать через js, но не уверен, что это поможет, т.к. берётся тот же объект.

Добавлено: Сб ноя 10, 2012 00:56
berya
при этом работали другие скрипты связанные с буфером обмена

Добавлено: Сб ноя 10, 2012 01:00
Flasher
berya
О как. А какие?