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 

AskParam - диалог запроса параметров командной строки
Goto page Previous  1, 2, 3, 4, 5 ... 18, 19, 20  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
jentoso



Joined: 20 Dec 2007
Posts: 348

Post (Separately) Posted: Fri Mar 01, 2013 15:23    Post subject: Reply with quote

MVV, то есть /r работает с уже составленным заранее списком?
_________________
TC 11.03 combo, Windows 10 x64
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Fri Mar 01, 2013 16:18    Post subject: Reply with quote

jentoso,
Список составляется с помощью указания нескольких команд /t или /u перед каждой командой /p. Если перед запросом очередного параметра режим очистки выключен, список не очищается, что позволяет делать несколько запросов с одинаковыми списками. Пример:
Code:
AskParam /r- /tDebug /uRelease /pParam1: /r /pParam2: /tWin32 /tx64 /pParam3:

При запросе Param1 варианты будут Debug и Release. При запросе Param2 - тоже они, т.к. команда /pParam1: не очистила список за собой (режим очистки отключён). А при запросе Param3 в списке вариантов уже не будет Debug и Release, т.к. режим очистки включён. Если поиграть с этим, думаю, вполне можно понять. Когда режим очистки включён, список очищается после запроса каждого параметра (как раньше). Когда выключен - значения в списке накапливаются.

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



Joined: 20 Dec 2007
Posts: 348

Post (Separately) Posted: Sat Mar 02, 2013 10:32    Post subject: Reply with quote

MVV, возможно сделать для для параметров /t /u комментарии? Попробую объяснить на примере. Сделал пользовательские комнады
Code:
[em_WinRAR_UnPack]
button=%commander_path%\Icons\custom.icl,9
cmd=%COMMANDER_PATH%\AskParam.exe
param=/c"Извлечь из архива" /t%T%O\ /u%O\ /p"Путь" %%COMMANDER_PATH%%\Utils\WinRAR\WinRAR.exe X -cfg- -ibck -kb -or -- %N "%%1"
menu=Распаковать WinRAR'ом

Теперь в выпадающем списке, показывается путь куда распаковать архив, в текущей панели или противоположной:

Хотелось бы иметь возможность, чтобы отображались надписи "В текущей панели", "В противоположной", а под ними подразумевались заданные параметры, но в тоже время, если выбран например параметр "В противоположной", можно было его изменить в ручную.
_________________
TC 11.03 combo, Windows 10 x64
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Sat Mar 02, 2013 12:28    Post subject: Reply with quote

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

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



Joined: 20 Dec 2007
Posts: 348

Post (Separately) Posted: Sat Mar 02, 2013 18:00    Post subject: Reply with quote

Quote:
А порядок их следования разве ничего не говорит?

Конечно порядок для себя самого понятен, но другие могут не понять.
Quote:
толку с фразы "В противоположной"

Вместо "В противоположной" пользователь мог бы написать любой коммент. Я имел ввиду /t"X -cfg- -ibck -kb -or -- %N", а пользователь не знает что сделает этот параметр, но к нему будет коммент, например /tc"Распаковка архива в фоновом режиме".
Хорошо, я просто спросил о данной возможности
_________________
TC 11.03 combo, Windows 10 x64
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Sat Mar 02, 2013 20:27    Post subject: Reply with quote

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



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

Post (Separately) Posted: Fri Mar 08, 2013 23:30    Post subject: Reply with quote

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



Joined: 20 Dec 2007
Posts: 348

Post (Separately) Posted: Sat Mar 09, 2013 00:35    Post subject: Reply with quote

MVV, не первый раз приходится уточнять о новых введения. Вот и на сей раз параметр /r! не совсем понятен.
_________________
TC 11.03 combo, Windows 10 x64
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Sat Mar 09, 2013 16:05    Post subject: Reply with quote

Ну он как раз для упрощения работы с очисткой списка введён. Приведенный выше пример, но с использованием нового /r!:
Code:
AskParam /r- /tDebug /uRelease /pParam1: /pParam2: /r! /tWin32 /tx64 /pParam3:

Удобство в том, что очистка происходит непосредственно в том месте, где указан /r!, и ровно 1 раз, а не после ближайшего /p (для следующей очистки нужно указывать /r! еще раз). Т.е., запросили параметр, почистили список вручную - и давай заполнять новыми элементами.

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



Joined: 22 Feb 2010
Posts: 151

Post (Separately) Posted: Fri Jun 14, 2013 16:44    Post subject: Reply with quote

MVV
Спасибо за программу, но я в ней совсем запутался. Приведи пожалуйста пример для двух параметров. У меня вот такая задача:
Code:
netsh wlan set hostednetwork mode=allow ssid="SoftAP" key="88888888" keyUsage=persistent

то есть надо чтобы сначала вышел диалог для названия SSID, затем диалог на ввод ключа KEY
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Fri Jun 14, 2013 19:23    Post subject: Reply with quote

Что-то вроде:
Code:
AskParam /c"SSID" /t"SoftAP" /p"Введите SSID:" /c"Key" /t"88888888" /p"Введите ключ:" netsh wlan set hostednetwork mode=allow ssid="%1" key="%2" keyUsage=persistent

Каждый ключ /p - это очередной запрос параметра, к первому потом обращение как к %1, ко второму - как к %2 и т.д.
Если запускать из батника или кнопки панели тотала, проценты надо удвоить.
В параметрах /t указывается предлагаемое значение, можно указать там свои (или вообще убрать, чтобы поле ввода было пустым). Можно указывать несколько /t подряд, чтобы был списочек предлагаемых значений (примеры выше).
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Fri Oct 11, 2013 21:45    Post subject: Reply with quote

Цель - отобразить окошко для ввода параметров (одного или нескольких через пробел) вручную.
На примере Nconvert (консольная утилита конвертирования изображений).
Работающий вариант реализации:
Code:
[em_Nconvert]
cmd=%commander_path%\Utilities\DreamLair\Nconvert\Nconvert.exe
param=? %P%S

Минус этого метода в том, что в появляющемся окошке для ввода параметров перечислены все передаваемые программе файлы.

Этого можно избежать с помощью AskParam.
Сумел дойти только до такого решения:
Code:
[em_Nconvert_]
cmd=%commander_path%\Plugins\exe\AskParam.exe
param=/c"Nconvert: Image graphics converter" /p"Enter parameters" /s0 "%%commander_path%%\Utilities\DreamLair\Nconvert\Nconvert.exe" " " "%%1" %P%S

Но оно оказалось неработающим.
Например ввожу в окне AskParam "-out png" (без кавычек) для пересохранения файла в формате png, а файл просто пересохраняется в исходном формате. Такое впечатление, что передаётся параметр до пробела, а всё что после пробела (-out), а png - отсекается.
А как же правильно тогда записать?
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Fri Oct 11, 2013 22:11    Post subject: Reply with quote

Не понял, какая цель у параметра-пробела. Он по синтаксису там точно нужен? Какой синтаксис должен быть у nconvert?

Чтобы посмотреть, что именно передается программе, можно, например, сделать так:
Code:
[em_Nconvert_]
cmd=%commander_path%\Plugins\exe\AskParam.exe
param=/c"Nconvert: Image graphics converter" /p"Enter parameters" cmd.exe /k echo "%%commander_path%%\Utilities\DreamLair\Nconvert\Nconvert.exe" " " "%%1" %P%S


Кстати, обычно, если ключ и его параметр разделяются пробелом, они не заключаются в кавычки (т.е. надо просто %%1, а не "%%1").

Если ключ -out есть всегда, и меняется только его параметр, имеет смысл его захардкодить и вводить только тип (можно даже накидать несколько типов в выпадающий список).
Code:
... /tpng /tjpg /tgif /p"Enter output type:" ... -out %%1

_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Fri Oct 11, 2013 23:35    Post subject: Reply with quote

Quote:
Не понял, какая цель у параметра-пробела.

Чтобы не нужно было вводить этот пробел в окне ввода AskParam. Если нет пробела, то Nconvert.exe и параметр слипались, получается Nconvert.exe-out и вообще ничего не происходит.

Quote:
Чтобы посмотреть, что именно передается программе, можно, например, сделать так

Только в предложенном варианте с cmd.exe надо ещё проценты учетверять: %%%%commander_path%%%%

Quote:
Кстати, обычно, если ключ и его параметр разделяются пробелом, они не заключаются в кавычки (т.е. надо просто %%1, а не "%%1").

Спасибо, да, в этом и была проблема. Если убрать кавычки, то и доп.пробел прописывать не нужно. Рабочий вариант:
Code:
[em_Nconvert_]
cmd=%commander_path%\Plugins\exe\AskParam.exe
param=/c"Nconvert: Image graphics converter" /p"Enter parameters" /s0 "%%commander_path%%\Utilities\DreamLair\Nconvert\Nconvert.exe" %%1 %P%S

_________________
Win11 x64 Eng | TC DreamLair eternal pre-α


Last edited by LonerD on Sat Oct 12, 2013 16:06; edited 1 time in total
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Sat Oct 12, 2013 14:54    Post subject: Reply with quote

Quote:
Если нет пробела, то Nconvert.exe и параметр слипались, получается Nconvert.exe-out и вообще ничего не происходит.

AskParam не трогает строку параметров, лишь подставляет текст вместо %%d, пробелы пропадать из-за нее не могут.

Quote:
Если убрать кавычки, то и доп.пробел прописывать не нужно.

Во, другое дело. Smile
Но вообще странно, что пустой параметр мог как-то помочь в этом. Серия пробелов не в кавычках - это разделитель между параметрами, а пробел внутри кавычек - это часть этого параметра, соответственно, этот пробел программа обрабатывает не как разделитель, а как параметр.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
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 Previous  1, 2, 3, 4, 5 ... 18, 19, 20  Next
Page 4 of 20

 
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