View previous topic :: View next topic |
Author |
Message |
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Sun Aug 08, 2010 19:33 Post subject: Автоупаковка файлов в текущий каталог |
|
|
Реквест по простейшей архивации через cm_PackFiles, который также не был найден и соорудить самому, имея аналогичный, у меня не вышло бы, т.к. не знаю последовательности действий по упаковке выделенных файлов в тот же самый каталог, где и файлы, а не в противоположную панель (возможно ли?).
Упаковка - ?
Распаковка -
Code: | ' File: UnpackHere.vbs
' Description: Распаковывает выделенные архивы в ту же директорию
' где расположены сами архивы, причем каждый архив в
' отдельную папку с именем, как у файла архива
' Requirements: WSH Helper for TC by Volniy
' Installation: Создайте для скрипта, например, кнопку на панели TC
' Copyright: (c) 2005, Volniy
Option Explicit
Dim TCS
Set TCS=CreateObject("TCSCRIPT.Helper")
TCS.Pause=100
TCS.SendCommand "cm_UnpackFiles", False
TCS.SendKeystroke "{DELETE}"
TCS.SendKeystroke "{TAB 4}"
TCS.SendKeystroke chr(32)
TCS.SendKeystroke "{ENTER}"
Set TCS = Nothing
WScript.Quit |
_________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Sun Aug 08, 2010 20:55 Post subject: |
|
|
Tol!k wrote: | для упаковки в тот же каталог нужно указать имя архива без пути, т.е. zip:архив.zip |
Теперь последовательность ясна, но в попытке из двух скриптов слепить то, что требуется привело меня к этому чудищу:
Code: | ' File: PackHere.vbs
' Description: Выдает ошибку
' Requirements: WSH Helper for TC by Volniy
' Installation: Создайте для вызова ошибки, например, кнопку на панели TC
Option Explicit
Dim TCS, OutDLL
OutDLL = WScript.Arguments
Set TCS=CreateObject("TCSCRIPT.Helper")
TCS.Pause=100
TCS.SendCommand "cm_PackFiles", False
TCS.SendKeystroke "zip:" & OutDLL & "{ENTER}"
Set TCS = Nothing
WScript.Quit |
Прошу, вылечи его. _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun Aug 08, 2010 21:19 Post subject: |
|
|
OutDLL = WScript.Arguments(0)
Параметры: "название архива.zip" |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Sun Aug 08, 2010 21:57 Post subject: |
|
|
TC по умолчанию для файла под курсором/выделенного устанавливает имя этого файла в качестве имени для архива. Если выделены два и более файлов, то за имя архива берет имя каталога, где эти файлы находятся. Исходить бы из этого... _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10263 Location: Россия, Саратов
|
(Separately) Posted: Sun Aug 08, 2010 22:41 Post subject: |
|
|
ask-rus wrote: | TC по умолчанию для файла под курсором/выделенного устанавливает имя этого файла в качестве имени для архива. Если выделены два и более файлов, то за имя архива берет имя каталога, где эти файлы находятся. Исходить бы из этого... |
Из этого можно исходить только в первом приближении. Есть нюансы, которые в официальной документации TC не рассмотрены вообще, зато приведены в нашей книге.
Quote: | В качестве имени архива для единственного файла или каталога всегда предлагается его собственное имя (за одним исключением, о котором — ниже). Для архива, включающего несколько файлов или подкаталогов, всегда предлагается имя исходного каталога или архива, содержащего эти объекты. Если используется режим показа файлов без подкаталогов, это имя корневого каталога в данном режиме. У корневого каталога диска нет имени в привычном смысле, поэтому при упаковке нескольких расположенных там объектов TC попросту присваивает архиву условное имя pack, которое вы можете, разумеется, поменять на что хотите.
Имя для файлов с расширениями, зарегистрированными (изначально или с вашей помощью) в TC как архивные, присваивается по правилам для группы объектов, даже если файл один. (Но специальные расширения томов у многотомных архивов обрабатываются обычным образом.)
Исключение из правил — упаковка из дерева каталогов или панели с результатами поиска. Для единичного объекта предлагается буква диска, где объект находится, а для группы объектов — уже известное нам имя pack. |
Думаю, пригодится. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Mon Aug 09, 2010 01:32 Post subject: |
|
|
ask-rus wrote: | TC по умолчанию для файла под курсором/выделенного устанавливает имя этого файла в качестве имени для архива. Если выделены два и более файлов, то за имя архива берет имя каталога, где эти файлы находятся. Исходить бы из этого... |
Code: | ' File: PackHere.vbs
' Requirements: WSH Helper for TC by Volniy
Option Explicit
Dim TCS, Str, Name, Ext, RR, NN, Buff
Set TCS=CreateObject("TCSCRIPT.Helper")
TCS.Pause=100
TCS.SendCommand "cm_PackFiles", False
Buff = TCS.GetTextFromClip
TCS.SendKeystroke "^C"
Str = TCS.GetTextFromClip
TCS.SetTextToClip(Buff)
Str = Replace(Str, """", "")
RR = Split (Str, "\"): NN = UBound(RR)
Name = RR(NN)
RR = Split (Name, "."): NN = UBound(RR)
Ext = RR(NN)
TCS.SendKeystroke "^+1" 'В доп. параметрах клав-ы нужно
'переключатель на англ. раскладку назначить на Ctrl+Shift+1
TCS.SendKeystroke Ext & ":""" & Name & """{ENTER}"
Set TCS = Nothing
WScript.Quit |
Пакует в последний использованный формат
— Портит (нетекстовый) буфер обмена
Last edited by Tol!k on Mon Aug 09, 2010 11:03; edited 1 time in total |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Mon Aug 09, 2010 07:30 Post subject: |
|
|
Слово "Портит" напрягает довольно-таки, но, по-моему, здесь нет ничего плохого, всё работает. _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Mon Aug 09, 2010 08:01 Post subject: |
|
|
> ничего плохого
Если в буфере что-то есть (нужное для совершенно других целей), то после скрипта оно будет потеряно. |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Mon Aug 09, 2010 08:46 Post subject: |
|
|
Иногда скрипт выдает следующие имена "архивов":
яшзЖ1юяшз
яшзЖЭРабочий столюяшзЭ
яшзЖЭЩкишеюяшзЭ
Решается перезапуском TC.
А избежать работы с буфером никак?
И очень часто выдает вот такую глупость:
Quote: | ---------------------------
Ошибка создания ZIP-архива.
---------------------------
Не удаётся записать новый ZIP-архив! Возможно, нет места на диске.
---------------------------
ОК
---------------------------
|
_________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Mon Aug 09, 2010 09:07 Post subject: |
|
|
ask-rus wrote: | яшзЖ1юяшз
яшзЖЭРабочий столюяшзЭ
яшзЖЭЩкишеюяшзЭ | Это Пунтосвичер, на форуме приводились способы борьбы.
ask-rus wrote: | А избежать работы с буфером никак? | Я не визард, я только учусь
Могу сохранить и восстановить текстовое содержимое буфера.
Модераторы, может выделите начиная с http://forum.wincmd.ru/viewtopic.php?p=66472#66472 в отдельную тему, пока ни с чем не перемешано |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Mon Aug 09, 2010 09:33 Post subject: |
|
|
Tol!k wrote: | Это Пунтосвичер, на форуме приводились способы борьбы. |
Пунты и прочих подобных нет. _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10263 Location: Россия, Саратов
|
(Separately) Posted: Mon Aug 09, 2010 09:53 Post subject: |
|
|
Tol!k
ask-rus
Хотел бы прежде переноса увидеть предложения по заголовку новой темы. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Mon Aug 09, 2010 10:12 Post subject: |
|
|
ask-rus, извиняюсь, яшз – это вставка zip в русской раскладке. Способ борьбы
Code: | TCS.SendKeystroke "^+1" 'В доп. параметрах клав-ы переключатель на англ. раскладку назначить на Ctrl+Shift+1
TCS.SendKeystroke "здесь наша вставка" |
Avada, да хоть PackHere.vbs |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Mon Aug 09, 2010 10:29 Post subject: |
|
|
Avada, "Кнопка упаковки в текущий каталог через cm_PackFiles" или как-то так...
! | Avada: | Тему отделил, заголовок сделал покороче. | _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|