Страница 4 из 20
Добавлено: Пт мар 01, 2013 15:23
jentoso
MVV, то есть /r работает с уже составленным заранее списком?
Добавлено: Пт мар 01, 2013 16:18
MVV
jentoso,
Список составляется с помощью указания нескольких команд
/t или
/u перед каждой командой
/p. Если перед запросом очередного параметра режим очистки выключен, список не очищается, что позволяет делать несколько запросов с одинаковыми списками. Пример:
Код: Выделить всё
AskParam /r- /tDebug /uRelease /pParam1: /r /pParam2: /tWin32 /tx64 /pParam3:
При запросе
Param1 варианты будут
Debug и
Release. При запросе
Param2 - тоже они, т.к. команда
/pParam1: не очистила список за собой (режим очистки отключён). А при запросе Param3 в списке вариантов уже не будет
Debug и
Release, т.к. режим очистки включён. Если поиграть с этим, думаю, вполне можно понять. Когда режим очистки включён, список очищается после запроса каждого параметра (как раньше). Когда выключен - значения в списке накапливаются.
Возможно, добавлю какой-нибудь параметр типа
/r1 для однократной очистки (типа, указывать всегда перед
/p, если надо очистить список).
Добавлено: Сб мар 02, 2013 10:32
jentoso
MVV, возможно сделать для для параметров /t /u комментарии? Попробую объяснить на примере. Сделал пользовательские комнады
Код: Выделить всё
[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'ом
Теперь в выпадающем списке, показывается путь куда распаковать архив, в текущей панели или противоположной:

Хотелось бы иметь возможность, чтобы отображались надписи "В текущей панели", "В противоположной", а под ними подразумевались заданные параметры, но в тоже время, если выбран например параметр "В противоположной", можно было его изменить в ручную.
Добавлено: Сб мар 02, 2013 12:28
MVV
А порядок их следования разве ничего не говорит? Первый - текущая, и т.п. И потом, толку с фразы "В противоположной", если для незначительного изменения пути (скажем, распаковать в поддиректорию 1 или в директорию уровнем чуть выше) придётся его полностью вписывать, убирая бесполезное "В противоположной". Путаницы будет куда больше.
Ничто не запрещает написать батник, который будет вызываться через AskParam, и который будет заменять "В противоположной" на путь, если так хочется.
Добавлено: Сб мар 02, 2013 18:00
jentoso
А порядок их следования разве ничего не говорит?
Конечно порядок для себя самого понятен, но другие могут не понять.
толку с фразы "В противоположной"
Вместо "В противоположной" пользователь мог бы написать любой коммент. Я имел ввиду /t"X -cfg- -ibck -kb -or -- %N", а пользователь не знает что сделает этот параметр, но к нему будет коммент, например /tc"Распаковка архива в фоновом режиме".
Хорошо, я просто спросил о данной возможности
Добавлено: Сб мар 02, 2013 20:27
MVV
Можно же батник вызвать, который будет проверять, содержит ли этот параметр строку "Распаковка архива в фоновом режиме", и подставлять сложный набор параметров. Тем более, можно запускать батник в скрытом виде, чтобы не было черного окна.
Добавлено: Пт мар 08, 2013 23:30
MVV
AskParam 1.0.3.86:
+ параметр /r! для прямой очистки выпадающего списка
* горизонтальная прокрутка для выпадающего списка
* длина строки параметров увеличена до 32767 символов
Добавлено: Сб мар 09, 2013 00:35
jentoso
MVV, не первый раз приходится уточнять о новых введения. Вот и на сей раз параметр /r! не совсем понятен.
Добавлено: Сб мар 09, 2013 16:05
MVV
Ну он как раз для упрощения работы с очисткой списка введён. Приведенный выше пример, но с использованием нового
/r!:
Код: Выделить всё
AskParam /r- /tDebug /uRelease /pParam1: /pParam2: /r! /tWin32 /tx64 /pParam3:
Удобство в том, что очистка происходит непосредственно в том месте, где указан
/r!, и ровно 1 раз, а не после ближайшего
/p (для следующей очистки нужно указывать
/r! еще раз). Т.е., запросили параметр, почистили список вручную - и давай заполнять новыми элементами.
Найду время, допишу Readme, параметры будут объясняться подробнее.
Добавлено: Пт июн 14, 2013 16:44
HA3APET
MVV
Спасибо за программу, но я в ней совсем запутался. Приведи пожалуйста пример для двух параметров. У меня вот такая задача:
Код: Выделить всё
netsh wlan set hostednetwork mode=allow ssid="SoftAP" key="88888888" keyUsage=persistent
то есть надо чтобы сначала вышел диалог для названия SSID, затем диалог на ввод ключа KEY
Добавлено: Пт июн 14, 2013 19:23
MVV
Что-то вроде:
Код: Выделить всё
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 подряд, чтобы был списочек предлагаемых значений (примеры выше).
Добавлено: Пт окт 11, 2013 21:45
LonerD
Цель - отобразить окошко для ввода параметров (одного или нескольких через пробел) вручную.
На примере Nconvert (консольная утилита конвертирования изображений).
Работающий вариант реализации:
Код: Выделить всё
[em_Nconvert]
cmd=%commander_path%\Utilities\DreamLair\Nconvert\Nconvert.exe
param=? %P%S
Минус этого метода в том, что в появляющемся окошке для ввода параметров перечислены все передаваемые программе файлы.
Этого можно избежать с помощью AskParam.
Сумел дойти только до такого решения:
Код: Выделить всё
[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 - отсекается.
А как же правильно тогда записать?
Добавлено: Пт окт 11, 2013 22:11
MVV
Не понял, какая цель у параметра-пробела. Он по синтаксису там точно нужен? Какой синтаксис должен быть у nconvert?
Чтобы посмотреть, что именно передается программе, можно, например, сделать так:
Код: Выделить всё
[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 есть всегда, и меняется только его параметр, имеет смысл его захардкодить и вводить только тип (можно даже накидать несколько типов в выпадающий список).
Код: Выделить всё
... /tpng /tjpg /tgif /p"Enter output type:" ... -out %%1
Добавлено: Пт окт 11, 2013 23:35
LonerD
Не понял, какая цель у параметра-пробела.
Чтобы не нужно было вводить этот пробел в окне ввода AskParam. Если нет пробела, то Nconvert.exe и параметр слипались, получается Nconvert.exe-out и вообще ничего не происходит.
Чтобы посмотреть, что именно передается программе, можно, например, сделать так
Только в предложенном варианте с cmd.exe надо ещё проценты учетверять: %%%%commander_path%%%%
Кстати, обычно, если ключ и его параметр разделяются пробелом, они не заключаются в кавычки (т.е. надо просто %%1, а не "%%1").
Спасибо, да, в этом и была проблема. Если убрать кавычки, то и доп.пробел прописывать не нужно. Рабочий вариант:
Код: Выделить всё
[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
Добавлено: Сб окт 12, 2013 14:54
MVV
Если нет пробела, то Nconvert.exe и параметр слипались, получается Nconvert.exe-out и вообще ничего не происходит.
AskParam не трогает строку параметров, лишь подставляет текст вместо
%%d, пробелы пропадать из-за нее не могут.
Если убрать кавычки, то и доп.пробел прописывать не нужно.
Во, другое дело.

Но вообще странно, что пустой параметр мог как-то помочь в этом. Серия пробелов не в кавычках - это разделитель между параметрами, а пробел внутри кавычек - это часть этого параметра, соответственно, этот пробел программа обрабатывает не как разделитель, а как параметр.