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 

[Кнопка] Аналог многострочного bat файла
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Fri Apr 06, 2012 17:23    Post subject: [Кнопка] Аналог многострочного bat файла Reply with quote

Итак, суть вопроса - в том, чтобы аналогично многострочному батнику сделать пункт меню или кнопку для бара.
В моём случае это должно быть приблизительно такой таким:
Code:
set __COMPAT_LAYER=Win2000
%p%n <некие_параметры>

При чём, нужно чтобы по ходу дела можно было подредактировать обе строки (нечто подобное тоталовскому параметру "?").
Возможен ли такой функционал при помощи только лишь TC? Если нет - каким образом можно подобное осуществить?

п.с.
Данная кнопка/меню нужна по причине того, что для нужного числа программ нет ни времени, ни желания писать баты индивидуально. Работать софтам нужно в среде Win7x64, однако без компат-лаера они не работают. Смена ОС не подходит по ряду причин.
Back to top
View user's profile Send private message
jentoso



Joined: 20 Dec 2007
Posts: 378

Post (Separately) Posted: Fri Apr 06, 2012 18:20    Post subject: Reply with quote

Mellomann, а AskParam для этого не подойдет?
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Fri Apr 06, 2012 18:25    Post subject: Reply with quote

jentoso
а он может обрабатывать несколькострочные команды?
Back to top
View user's profile Send private message
790



Joined: 09 Aug 2008
Posts: 336

Post (Separately) Posted: Fri Apr 06, 2012 19:45    Post subject: Reply with quote

а TCMC не подходит? я его его использую, чтоб две команды сразу ТС отсылать.

Извини, если не в тему ляпнул Smile
_________________
TC 11.51, Win10x64

Cuda уехал text, он был ещё вчераа...
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Fri Apr 06, 2012 20:04    Post subject: Reply with quote

790,
а там именно такая поочерёдность с передачей компат-лаера запускаемому процессу есть?
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Fri Apr 06, 2012 23:24    Post subject: Reply with quote

Mellomann, AskParam позволит ввести каждый параметр отдельно (один за другим). Т.е., сначала режим совместимости, а затем - подредактировать выполняемую команду.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Sat Apr 07, 2012 00:37    Post subject: Reply with quote

MVV
В частности, выполнить мою конкретную задачу он сможет?
Если да - что конкретно ему нужно написать?
Так, чтобы в выделеное жирным
Code:
set __COMPAT_LAYER=[i]Win2000[/i]
%p%n [i]<некие_параметры>[/i]
потом при надобности вносить правки. При чём, желательно, все - за один запрос.
Back to top
View user's profile Send private message
790



Joined: 09 Aug 2008
Posts: 336

Post (Separately) Posted: Sat Apr 07, 2012 02:11    Post subject: Reply with quote

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



Joined: 25 Jul 2009
Posts: 664

Post (Separately) Posted: Sat Apr 07, 2012 13:38    Post subject: Reply with quote

Mellomann
Читал внимательно два раза. Не въехал: так не работает
Code:
cmd##=%ComSpec%
param##=? set __COMPAT_LAYER=Win2000 & %p%n
?
Вторую строчку можно попробовать так:
Code:
param##=? set __COMPAT_LAYER=Win2000 & start "" %p%n
У меня, правда, 32 бита, но, в целом, такая многострочность отрабатывает...
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Sat Apr 07, 2012 13:56    Post subject: Reply with quote

Serge Yolkin
Не работает, и в том загвоздка.
Ибо сначала идёт команда создания компат-лаёра, и только после этого следующей командой выполняется сама программа под уже работающим слоем.
Back to top
View user's profile Send private message
Tol!k



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

Post (Separately) Posted: Sat Apr 07, 2012 15:52    Post subject: Reply with quote

Серж забыл параметр
должно работать
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
View user's profile Send private message
Serge Yolkin



Joined: 25 Jul 2009
Posts: 664

Post (Separately) Posted: Sat Apr 07, 2012 19:21    Post subject: Reply with quote

Tol!k, Вы совершенно правы. Из-за отсутствия 64b окружения и, соответсвенно, связанных с ним проблем, я не тестил предложенное, а писал "от руки".
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Sat Apr 07, 2012 20:30    Post subject: Reply with quote

Спасибо! Вроде бы работает.
Вопрос по строкам:
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
View user's profile Send private message
Tol!k



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

Post (Separately) Posted: Sun Apr 08, 2012 19:43    Post subject: Reply with quote

Mellomann wrote:
"&" и позволяет делать разделение
команд. Одну команду можно растянуть на несколько строк.
Mellomann wrote:
Какая разница между %ComSpec% и простым cmd?
%ComSpec% это переменная, её содержимое зависит от местных реалий.
Например, на win9x просто нет cmd.exe, там command.com
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1172
Location: Макеевка

Post (Separately) Posted: Mon Jun 04, 2012 14:10    Post subject: Reply with quote

Помогите соединить две команды в одну строку.

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
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, 3  Next
Page 1 of 3

 
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