View previous topic :: View next topic |
Author |
Message |
Mellomann

Joined: 07 Sep 2009 Posts: 709
|
(Separately) Posted: Fri Apr 06, 2012 17:23 Post subject: [Кнопка] Аналог многострочного bat файла |
|
|
Итак, суть вопроса - в том, чтобы аналогично многострочному батнику сделать пункт меню или кнопку для бара.
В моём случае это должно быть приблизительно такой таким:
Code: | set __COMPAT_LAYER=Win2000
%p%n <некие_параметры> |
При чём, нужно чтобы по ходу дела можно было подредактировать обе строки (нечто подобное тоталовскому параметру "?").
Возможен ли такой функционал при помощи только лишь TC? Если нет - каким образом можно подобное осуществить?
п.с.
Данная кнопка/меню нужна по причине того, что для нужного числа программ нет ни времени, ни желания писать баты индивидуально. Работать софтам нужно в среде Win7x64, однако без компат-лаера они не работают. Смена ОС не подходит по ряду причин. |
|
Back to top |
|
 |
jentoso

Joined: 20 Dec 2007 Posts: 378
|
(Separately) Posted: Fri Apr 06, 2012 18:20 Post subject: |
|
|
Mellomann, а AskParam для этого не подойдет? |
|
Back to top |
|
 |
Mellomann

Joined: 07 Sep 2009 Posts: 709
|
(Separately) Posted: Fri Apr 06, 2012 18:25 Post subject: |
|
|
jentoso
а он может обрабатывать несколькострочные команды? |
|
Back to top |
|
 |
790
Joined: 09 Aug 2008 Posts: 336
|
(Separately) Posted: Fri Apr 06, 2012 19:45 Post subject: |
|
|
а TCMC не подходит? я его его использую, чтоб две команды сразу ТС отсылать.
Извини, если не в тему ляпнул  _________________ TC 11.51, Win10x64
Cuda уехал text, он был ещё вчераа... |
|
Back to top |
|
 |
Mellomann

Joined: 07 Sep 2009 Posts: 709
|
(Separately) Posted: Fri Apr 06, 2012 20:04 Post subject: |
|
|
790,
а там именно такая поочерёдность с передачей компат-лаера запускаемому процессу есть? |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
Mellomann

Joined: 07 Sep 2009 Posts: 709
|
(Separately) Posted: Sat Apr 07, 2012 00:37 Post subject: |
|
|
MVV
В частности, выполнить мою конкретную задачу он сможет?
Если да - что конкретно ему нужно написать?
Так, чтобы в выделеное жирным Code: | set __COMPAT_LAYER=[i]Win2000[/i]
%p%n [i]<некие_параметры>[/i] | потом при надобности вносить правки. При чём, желательно, все - за один запрос. |
|
Back to top |
|
 |
790
Joined: 09 Aug 2008 Posts: 336
|
(Separately) Posted: Sat Apr 07, 2012 02:11 Post subject: |
|
|
Mellomann wrote: | 790,
а там именно такая поочерёдность с передачей компат-лаера запускаемому процессу есть? |
Не знаю, но если он может даже задавать задерку между командами, то получается и поочерёдность можно.
Вот пример моей комманды:
Code: | %COMMANDER_PATH%\TCMC.EXE 200 CDs "\папка 1" "\папка 2" CM534 |
Открыть с одной "стороны" папку 1, с другой - папку 2 и выполнить комманду см534 с задержкой 200мс _________________ TC 11.51, Win10x64
Cuda уехал text, он был ещё вчераа... |
|
Back to top |
|
 |
Serge Yolkin
Joined: 25 Jul 2009 Posts: 664
|
(Separately) Posted: Sat Apr 07, 2012 13:38 Post subject: |
|
|
Mellomann
Читал внимательно два раза. Не въехал: так не работает Code: | cmd##=%ComSpec%
param##=? set __COMPAT_LAYER=Win2000 & %p%n | ?
Вторую строчку можно попробовать так: Code: | param##=? set __COMPAT_LAYER=Win2000 & start "" %p%n | У меня, правда, 32 бита, но, в целом, такая многострочность отрабатывает... |
|
Back to top |
|
 |
Mellomann

Joined: 07 Sep 2009 Posts: 709
|
(Separately) Posted: Sat Apr 07, 2012 13:56 Post subject: |
|
|
Serge Yolkin
Не работает, и в том загвоздка.
Ибо сначала идёт команда создания компат-лаёра, и только после этого следующей командой выполняется сама программа под уже работающим слоем. |
|
Back to top |
|
 |
Tol!k

Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sat Apr 07, 2012 15:52 Post subject: |
|
|
Серж забыл параметр /С
должно работать
Code: | TOTALCMD#BAR#DATA
%ComSpec% /c set /p __COMPAT_LAYER=Enter Compat.Layer: &set __
?&"%p%n" &pause
%windir%\system32\shell32.dll,159
проверка работы окружения
-1
|
|
|
Back to top |
|
 |
Serge Yolkin
Joined: 25 Jul 2009 Posts: 664
|
(Separately) Posted: Sat Apr 07, 2012 19:21 Post subject: |
|
|
Tol!k, Вы совершенно правы. Из-за отсутствия 64b окружения и, соответсвенно, связанных с ним проблем, я не тестил предложенное, а писал "от руки". |
|
Back to top |
|
 |
Mellomann

Joined: 07 Sep 2009 Posts: 709
|
(Separately) Posted: Sat Apr 07, 2012 20:30 Post subject: |
|
|
Спасибо! Вроде бы работает.
Вопрос по строкам: Quote: | %ComSpec% /c set /p __COMPAT_LAYER=Enter Compat.Layer: &set __
?&"%p%n" &pause | как я понял, "&" и позволяет делать разделение строк, аналогичное началу новой строки?
Для более удобного редактирования за один раз, переделал в вид: Quote: | %ComSpec%
? /c set __COMPAT_LAYER=Win2000 &"%p%n" &pause | тоже, вроде бы, работает.
Какая разница между %ComSpec% и простым cmd? |
|
Back to top |
|
 |
Tol!k

Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun Apr 08, 2012 19:43 Post subject: |
|
|
Mellomann wrote: | "&" и позволяет делать разделение | команд. Одну команду можно растянуть на несколько строк.
Mellomann wrote: | Какая разница между %ComSpec% и простым cmd? | %ComSpec% это переменная, её содержимое зависит от местных реалий.
Например, на win9x просто нет cmd.exe, там command.com |
|
Back to top |
|
 |
LonerD

Joined: 04 Jan 2011 Posts: 1172 Location: Макеевка
|
(Separately) Posted: Mon Jun 04, 2012 14:10 Post subject: |
|
|
Помогите соединить две команды в одну строку.
Code: | [em_TreeCopy_plugin]
cmd=%commander_path%\Plugins\exe\Hidcon.exe cmd.exe /c start "%commander_path%\Plugins\exe\TCFS2\TCFS2.exe" /ef tcm(508) & %commander_path%\Plugins\exe\NirCmd\NirCmd.exe sendkeypress shift+tab shift+tab home down
menu=TreeCopy - copying files with full folder tree |
В приведённом примере вначале вызывается TCFS2 и через неё встроенная команда архивации. Затем вызывается NirCmd и эмулируется нажатие клавиш (выбор нужного архиватора из списка, у меня он второй в списке). Предварительно вызывается Hidcon, которая скрывает консольные окна.
Вопрос в следующем - как это правильно записать, где расставить кавычки с учётом того, что в пути к каталогу Тотала могут содержаться пробелы?
Last edited by LonerD on Mon Jun 04, 2012 17:30; edited 1 time in total |
|
Back to top |
|
 |
|