Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Автоупаковка файлов в текущий каталог
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Sun Aug 08, 2010 19:33    Post subject: Автоупаковка файлов в текущий каталог Reply with quote

Реквест по простейшей архивации через 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
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun Aug 08, 2010 20:17    Post subject: Reply with quote

ask-rus
Автоматическое создание из папки с иконками библиотеки DLL
для упаковки в тот же каталог нужно указать имя архива без пути, т.е. zip:архив.zip
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Sun Aug 08, 2010 20:55    Post subject: Reply with quote

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
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun Aug 08, 2010 21:19    Post subject: Reply with quote

OutDLL = WScript.Arguments(0)
Параметры: "название архива.zip"
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Sun Aug 08, 2010 21:57    Post subject: Reply with quote

TC по умолчанию для файла под курсором/выделенного устанавливает имя этого файла в качестве имени для архива. Если выделены два и более файлов, то за имя архива берет имя каталога, где эти файлы находятся. Исходить бы из этого...
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10263
Location: Россия, Саратов

Post (Separately) Posted: Sun Aug 08, 2010 22:41    Post subject: Reply with quote

ask-rus wrote:
TC по умолчанию для файла под курсором/выделенного устанавливает имя этого файла в качестве имени для архива. Если выделены два и более файлов, то за имя архива берет имя каталога, где эти файлы находятся. Исходить бы из этого...

Из этого можно исходить только в первом приближении. Есть нюансы, которые в официальной документации TC не рассмотрены вообще, зато приведены в нашей книге.
Quote:
В качестве имени архива для единственного файла или каталога всегда предлагается его собственное имя (за одним исключением, о котором — ниже). Для архива, включающего несколько файлов или подкаталогов, всегда предлагается имя исходного каталога или архива, содержащего эти объекты. Если используется режим показа файлов без подкаталогов, это имя корневого каталога в данном режиме. У корневого каталога диска нет имени в привычном смысле, поэтому при упаковке нескольких расположенных там объектов TC попросту присваивает архиву условное имя pack, которое вы можете, разумеется, поменять на что хотите.
Имя для файлов с расширениями, зарегистрированными (изначально или с вашей помощью) в TC как архивные, присваивается по правилам для группы объектов, даже если файл один. (Но специальные расширения томов у многотомных архивов обрабатываются обычным образом.)
Исключение из правил — упаковка из дерева каталогов или панели с результатами поиска. Для единичного объекта предлагается буква диска, где объект находится, а для группы объектов — уже известное нам имя pack.

Думаю, пригодится.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Mon Aug 09, 2010 01:32    Post subject: Reply with quote

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
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Mon Aug 09, 2010 07:30    Post subject: Reply with quote

Слово "Портит" напрягает довольно-таки, но, по-моему, здесь нет ничего плохого, всё работает.
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Mon Aug 09, 2010 08:01    Post subject: Reply with quote

> ничего плохого
Если в буфере что-то есть (нужное для совершенно других целей), то после скрипта оно будет потеряно.
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Mon Aug 09, 2010 08:46    Post subject: Reply with quote

Иногда скрипт выдает следующие имена "архивов":

яшзЖ1юяшз
яшзЖЭРабочий столюяшзЭ
яшзЖЭЩкишеюяшзЭ

Решается перезапуском TC.

А избежать работы с буфером никак?

И очень часто выдает вот такую глупость:
Quote:
---------------------------
Ошибка создания ZIP-архива.
---------------------------
Не удаётся записать новый ZIP-архив! Возможно, нет места на диске.
---------------------------
ОК
---------------------------

_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Mon Aug 09, 2010 09:07    Post subject: Reply with quote

ask-rus wrote:
яшзЖ1юяшз
яшзЖЭРабочий столюяшзЭ
яшзЖЭЩкишеюяшзЭ
Это Пунтосвичер, на форуме приводились способы борьбы.

ask-rus wrote:
А избежать работы с буфером никак?
Я не визард, я только учусь
Могу сохранить и восстановить текстовое содержимое буфера.

Модераторы, может выделите начиная с http://forum.wincmd.ru/viewtopic.php?p=66472#66472 в отдельную тему, пока ни с чем не перемешано
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Mon Aug 09, 2010 09:33    Post subject: Reply with quote

Tol!k wrote:
Это Пунтосвичер, на форуме приводились способы борьбы.

Пунты и прочих подобных нет.
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10263
Location: Россия, Саратов

Post (Separately) Posted: Mon Aug 09, 2010 09:53    Post subject: Reply with quote

Tol!k
ask-rus
Хотел бы прежде переноса увидеть предложения по заголовку новой темы.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Mon Aug 09, 2010 10:12    Post subject: Reply with quote

ask-rus, извиняюсь, яшз – это вставка zip в русской раскладке. Способ борьбы
Code:
TCS.SendKeystroke "^+1" 'В доп. параметрах клав-ы переключатель на англ. раскладку назначить на Ctrl+Shift+1
TCS.SendKeystroke "здесь наша вставка"


Avada, да хоть PackHere.vbs
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Mon Aug 09, 2010 10:29    Post subject: Reply with quote

Avada, "Кнопка упаковки в текущий каталог через cm_PackFiles" или как-то так...

 !  Avada:
Тему отделил, заголовок сделал покороче.

_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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