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 

executor.wcx
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
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Fri Mar 14, 2008 18:39    Post subject: executor.wcx Reply with quote

executor.wcx
Аналог Total Converter
Предназначен для выполнения заданных действий в зависимости от расширения файла и выдачи результата в виде содержимого архива.
Теоретически может использоваться для поиска заданного текста в файлах с помощью соответствующих конвертеров, при условии регистрации плагина на соответствующие расширения.

Масштабного тестирования не проводил, тестировал только на pdf файлах. Примеры использования - см. в ini.
---
0.0.0.2 - [+] добавлено ведение примитивного лога, лог будет писаться в файл executor.log в папке плагина
0.0.0.3 - [+] ShowConsole=1
[+] [executor_path] в ini
0.0.0.4 - [+] теперь в коммандной строке тоже поддерживаются [N] и [E]
[+] попытка приделать использование %переменных_окружения% в коммандной строке


Last edited by Lev on Mon Apr 14, 2008 16:50; edited 4 times in total
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Thu Mar 20, 2008 13:15    Post subject: Reply with quote

Quote:
THX 2Lev!
Подключил executor и решил проблему с pdfimages. Отличный плагин, идеально дополняющий Multiarc, который с конвертерами не дружит.

Ложка дегтя: pdftohtml подключить так и не удалось. Я полагаю, здесь проблема та же, что и у Multiarca с упаковкой (Add): pdftohtml пытается запустить gswin32c.exe (Ghostscript) в текущей директории и не находит его, потому что executor меняет текущую директорию. Можно сделать (опцию?) так, чтобы текущей оставалась директория конвертера? , т.е. вызов pdftohtml должен произойти, например, таким образом:
Code:
cd %COMMANDER_PATH%\wcx\executor\xpdf
pdftohtml.exe -c e:\download\TC.pdf d:\!\doc\TC.htm


И обязательно нужно добавить возможность вести лог, а то непонятно, что с какими путями подставляется в команду.

Короче весчь нужная, ждем новостей от аффтара !


pdftohtml на моей машине отсутствует и мне пока лень его разыскивать, скачивать, устанавливать, конфигурировать...
теоретически подключение должно выглядеть вот так:
Code:
[pdf]
fileout1="[N].htm"
command1=%COMMANDER_PATH%\wcx\executor\xpdf\pdftohtml.exe -c "filein" "fileout"

путь к Ghostscript, должен быть в переменной окружения %PATH%
При написании плагина я совершенно не расчитывал, что он будет использоваться с конверторами создающими дополнительные папки и файлы, типа картинок для html файла, поэтому ничего по этому поводу сказать не могу.
создание лога запишу в ТуДу
можете еще ради интереса заглянуть в тему Multiarc, конверторы и поиск
Back to top
View user's profile Send private message
kotlomoy



Joined: 08 Mar 2008
Posts: 44

Post (Separately) Posted: Thu Mar 20, 2008 21:37    Post subject: Reply with quote

Lev wrote:
pdftohtml на моей машине отсутствует и мне пока лень его разыскивать, скачивать, устанавливать, конфигурировать...
теоретически подключение должно выглядеть вот так:

Да и не нужно, я уже все подключил и оно работает. Только Ghostscript не вызывается из-за проблемы с текущим путем
Lev wrote:
путь к Ghostscript, должен быть в переменной окружения %PATH%

Да, я знаю, но задача стоит другая: нужно, чтобы все запускалось и работало на любом компьютере без лишних телодвижений по установке.
Ну что же, я решил пойти обходным путем и написать bat'ник, но столкнулся проблемами. Что-то Executor не желает с батниками работать... не знаю, в чем проблема, просто приведу два примера:

Code:
executor.ini:
command1=pdf    xpdf\pdftotext.bat

pdftotext.bat:
"%COMMANDER_PATH%\wcx\executor 0001\pdf    xpdf\pdftotext.exe" -layout "d:\_\hus.pdf" "d:\~\hus.txt"

Все работает нормально

Code:
executor.ini:
command1=pdf    xpdf\pdftotext.bat "filein" "fileout"

pdftotext.bat:
"%COMMANDER_PATH%\wcx\executor 0001\pdf    xpdf\pdftotext.exe" -layout %1 %2

А в этом случае программа (pdftotext) запускается, но результата нет. О том, что программа запустилась известно потому, что задана озвучка запуска в звуковой схеме винды. Других индикаторов работы нет, так что ждем лог. И кстати следующая команда работает нормально:
Code:
command1=pdf    xpdf\pdftotext.exe -layout "filein" "fileout"


Хотел, чтобы %PATH% устанавливался перед запуском TC, через батник, но не знаю как задать путь к TC без переменной %COMMANDER_PATH%. Может кто-нибудь знает?

Lev wrote:
При написании плагина я совершенно не расчитывал, что он будет использоваться с конверторами создающими дополнительные папки и файлы, типа картинок для html файла, поэтому ничего по этому поводу сказать не могу.

А я могу - все работает. Не вижу здесь проблемы, все что нужно - это запустить конвертер с корректными параметрами, а тот уже создает все нужные папки и файлы.
Lev wrote:
можете еще ради интереса заглянуть в тему Multiarc, конверторы и поиск

Заглянул, тамо написано, как конвертировать файлы во временную папку, что мне не нужно. Во время своих мытарст с мультиарком написал почти то же самое. Кстати, я тоже не понимаю, почему расширение без пробела не присоединяется?
_________________
BranchViewExtended
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Fri Mar 21, 2008 14:27    Post subject: Reply with quote

добавил простенький лог, поправил ссылку в первом сообщении
--
SET PATH=c:\путь к ghostscript;%PATH%
Back to top
View user's profile Send private message
kotlomoy



Joined: 08 Mar 2008
Posts: 44

Post (Separately) Posted: Fri Mar 21, 2008 15:13    Post subject: Reply with quote

В следующей версии нужно добавить ключ ShowConsole=1 - показать консоль.
Сейчас в логе можно увидеть команду запуска, а что происходит дальше, какие сообщения об ошибках выводит конвертер - все это неизвестно.
Lev wrote:
SET PATH=c:\путь к ghostscript;%PATH%

В том то и проблема, что Ghostscript лежит в папках коммандера.
А коммандер лежит там, куда его положили, скопировав с флэшки, или лежит на флэшке. Так что даже буква диска неизвестна...
А хотя...

Вопрос: Как в bat-файле указать путь к самому bat-файлу? Может, есть какая переменная? Спрашиваю на случай, если кто-то сталкивался с такой проблемой
_________________
BranchViewExtended
Back to top
View user's profile Send private message
kotlomoy



Joined: 08 Mar 2008
Posts: 44

Post (Separately) Posted: Fri Mar 21, 2008 19:38    Post subject: Reply with quote

Спасибо за внимание к моей теме Smile , жаль не сработало.

В общем, в результате экспериментов выяснилось, что

ShowConsole=1
- надо

Будем ждать... Smile
_________________
BranchViewExtended
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Fri Mar 21, 2008 20:04    Post subject: Reply with quote

Сделал ShowConsole=1
только она быстренько закрывается :)
имхо стоит попробовать перенаправление вывода в файлик
типа:
Code:
command1=команда "filein" "fileout" > "aaa.log"

сделал [executor_path] в ini файле (он уже со слешем на хвосте)
можно писать
Code:
command1=[executor_path]команда "filein" "fileout"
Back to top
View user's profile Send private message
kotlomoy



Joined: 08 Mar 2008
Posts: 44

Post (Separately) Posted: Fri Mar 21, 2008 23:05    Post subject: Reply with quote

Решил провести эксперимент.

1. Запускаем cmd
2. Проверяем переменную %PATH%:
Code:
D:\>echo %PATH%
"C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;;C:\PROGRA~1\ATITEC~1\A
TICON~1;C:\PROGRA~1\COMMON~1\AUTODE~1;D:\!progs\totalcmd\wcx\EXECUT~1\PDFXPD~1"

Видим, что последним прописан путь к gswin32c.exe (Ghostscript).
3. Запустим pdftohtml.exe для конвертации QS.PDF в QS.htm:
Code:
D:\>"D:\!progs\totalcmd\wcx\executor 0001\pdf    xpdf\pdftohtml.exe" -c -noframe
s -hidden -enc UTF-8 "D:\_\QS.PDF" "D:\~\QS.htm"
Page-1
Page-2
.... (здесь выводится процесс генерации htm) ....
Page-72
'gswin32c' is not recognized as an internal or external command,
operable program or batch file.
Error: Failed to launch Ghostscript!

gswin32c.exe не найден, картинки к QS.htm не сгенерировались...
В чем проблема, может в %PATH% прописан неправильный путь?
4. А давайте проверим:
Code:
D:\>cd D:\!progs\totalcmd\wcx\EXECUT~1\PDFXPD~1
D:\!progs\totalcmd\wcx\EXECUT~1\PDFXPD~1>

Как видим, путь существует
5. Запустим pdftohtml еще раз:
Code:
D:\!progs\totalcmd\wcx\EXECUT~1\PDFXPD~1>"D:\!progs\totalcmd\wcx\executor 0001\p
df    xpdf\pdftohtml.exe" -c -noframes -hidden -enc UTF-8 "D:\_\QS.PDF" "D:\~\QS
.htm"
Page-1
Page-2
.... (здесь выводится процесс генерации htm) ....
Page-72

Все работает нормально, html сгенерился вместе к картинками.
Почему? Что изменилось?
А изменилась только текущая директория, когда мы сделали cd

Вывод: pdftohtml не смотрит %PATH%, ему подавай gswin32c.exe, лежащий в текущей директории, т.е. в %CD%.
Думаю, для решения проблемы с pdftohtml, executor.wcx должен делать cd в папку конвертора.

P.S. Что касается версии 0.0.0.3:
Что же, консоль пропадает, так что толку от нее немного. Sad
Пробовал перенаправлять вывод в файл. Не работает. Sad Файл не создается вообще. А если бы создался, это помогло бы не очень, потому что сообщения об ошибках туда не выведутся Sad - проверял вручную через cmd.
[executor_path] работает неправильно (если хотите, могу написать как), так что его лучше не использовать. Да и не нужен он, я просто пишу относительный путь и все работает Smile , например:
Code:
command4=pdf    xpdf\pdfimages.exe -j "filein" "fileout"

_________________
BranchViewExtended
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Mon Mar 24, 2008 21:55    Post subject: Reply with quote

0.0.0.4 - попытка приделать использование %переменных_окружения%
--
из опытов
пытался потестировать показ консоли с паузой (...|more)
пытался направить вывод в "fileout" (... > "fileout")
- особых результатов не добился
может у Вас чего толкового выйдет
--
зы Кстати, а чем вас не устраивает вариант с коммандой или скриптом просто прописанными на кнопку? И плагин мой тогда не понадобится. Ведь как я понял Вам требуется конверсия, а не просмотр файла "внутри" архива с его последующим удалением. Пакетная обработка туда тоже приделывается.
Back to top
View user's profile Send private message
kotlomoy



Joined: 08 Mar 2008
Posts: 44

Post (Separately) Posted: Tue Mar 25, 2008 01:30    Post subject: Reply with quote

Lev wrote:
Кстати, а чем вас не устраивает вариант с коммандой или скриптом просто прописанными на кнопку? И плагин мой тогда не понадобится.

Ну, во-первых, я кнопками не пользуюсь, и создание одной-единственной кнопки, персонально обслуживающей конкретный тип файла, ИМХО - извращение, также, как и создание специального шортката. Пока не припрет (а оно не припрет) к этим крайним мерам прибегать не буду.
Во-вторых, я не знаю формат команд для кнопок. Как туда вставить файл под курсором, путь неактивной панели?
_________________
BranchViewExtended
Back to top
View user's profile Send private message
kotlomoy



Joined: 08 Mar 2008
Posts: 44

Post (Separately) Posted: Tue Mar 25, 2008 01:52    Post subject: Reply with quote

По поводу консоли: Гислер не придумал ничего лучше запуска консоли через noclose.pif.

readme wrote:
Обычно при запуске консольного или DOS-приложения в Total Commander появляется консольное окошко, в котором выполняется запущенная программа, а после завершения работы это окошко закрывается. Это очень неудобно, если требуется просмотреть текст, выданный программой. Поэтому Total Commander позволяет запускать консольные приложения без закрытия окна консоли ... При таком способе запуска Total Commander выполняет командную строку вида:

Code:
noclose.pif /C <параметры>


где <параметры> - это запускаемое вами приложение, возможно со своими параметрами.

_________________
BranchViewExtended
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Tue Mar 25, 2008 14:09    Post subject: Reply with quote

Quote:
Во-вторых, я не знаю формат команд для кнопок. Как туда вставить файл под курсором, путь неактивной панели?

правый клик по любой кнопке - Change, и в появившемся диалоге сразу F1
файл под курсором - %P%N
путь неактивной панели - %M
и т.д. и т.п.
+ смотреть тему по кнопкам на форуме и в tckb, да и темы по скриптам не помешают. Имхо, чем большим количеством инструментов владеешь, тем оно лучше.
Back to top
View user's profile Send private message
kotlomoy



Joined: 08 Mar 2008
Posts: 44

Post (Separately) Posted: Wed Mar 26, 2008 20:39    Post subject: Reply with quote

Пошел на компромисс: вставил команду вызова pdftohtml в меню. Но с плагином бы лучше было Sad
_________________
BranchViewExtended
Back to top
View user's profile Send private message
m7876



Joined: 11 Apr 2008
Posts: 8

Post (Separately) Posted: Sat Apr 12, 2008 23:13    Post subject: Reply with quote

Спасибо за плагин! Хорошо работает с TeX, конкретно с pdflatex, тогда как Total Converter мне так и не удалось победить.
Из пожеланий: написать коротенькую справку.
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Mon Apr 14, 2008 16:49    Post subject: Reply with quote

Коротенькая справка написана, плаг закинул на wincmd.ru
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