AskParam - диалог запроса параметров командной строки

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora писал(а):мне здесь предлагают любой скрипт для получения (передачи) параметра в файл, а VBS для этого и не подходит.
Не в файл, а в переменную. И по какой причине не подходит? Причина может быть только одна - кавычки нужны внутри записи, а не по краям. Это так? Если да, то зачем?
И тут это решается заменой, например, на апостроф, а в скрипте - обратной заменой через Replace.
Последний раз редактировалось Flasher Пт дек 19, 2014 13:24, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):Если да, то зачем?
Надо запускать приложение с такими, например, параметрами:

Код: Выделить всё

-InstallPath="%ProgramFiles%\\IEPro"
-SetEnvironment="Var1=E:\\totalcmd" -SetEnvironment="Var2=%%T\"
-FinishMessage="new_finish_message"
-InstallPath="%Path7z%\\7zSFX_Tools" -FinishMessage="7z SFX Tools установлен!" -ai -gm2 -fm20
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

А почему тогда не использовать в качестве параметров записи в кавычках? Т.е. в данном случае 6 параметров.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):Не в файл, а в переменную.
В какую переменную? Мне здесь объяснили, что я могу получить параметр для своих целей ТОЛЬКО через файл! О какой переменной разговор?
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Советую перечитать внимательнее.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher
Я не люблю такой разговор. Вместо помощи одни вопросы в стиле:"А нафига так делать, а не эдак?" Мне дольше объяснять и доказывать правильность своего решения, лучше уж не надо такой помощи...
Не обессудьте.
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora
А, т.е. это чисто для себя делается, а не для людей. Ну, тогда ясно. Больше помогать не буду.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Не пойму, в чем сложность вызова cmd для записи в файл? И почему нельзя вызвать приложение с указанными параметрами прямо из AskParam?

Только через файл - это в случае, если предполагается дальнейшая обработка выборов пользователя в AskParam в скрипте.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

MVV
Каждый введенный параметр будет сохраняться в файле. Список в файле будет ограничен 10-20 значений. Параметры в списке будут перемещаться в зависимости от того какой из них использовался последним и самые старые будут "выдавливаться" из списка.
Этот список наиболее частоиспользуемых параметров будет использоваться при следующем запуске AskParam в виде строки параметров /t.
Вот поэтому мне нужно получить именно параметр из AskParam, а запуск приложения с полученным параметром я смогу и сам организовать в скрипте.

Добавлено спустя 7 минут:
MVV писал(а):в чем сложность вызова cmd для записи в файл?
Приходится перекодировать файл с кириллицей
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

А если в файле будет UTF-16 без маркера?

Код: Выделить всё

AskParam.exe /pt /s0 /w cmd /u /c "echo %1>d:\1.txt"
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

MVV
Спасибо, попробую. Правда переменную (%1) придется заключать в кавычки, а потом их в скрипте удалять. И какие еще фокусы могут преподнести спец символы, которые могут быть введены пользователем, будучи посланные в CMD...
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

MVV
От спец символов не спасают даже кавычки. :(
CMD, в данном случае, не обеспечивают надежную запись в файл.
Жду Вашего решения о модификации утилиты.
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Такая функция совершенно не вписывается в концепцию.
Уверен, можно найти внешнюю утилиту для записи строки в файл.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

MVV
Зайдем с другого конца...
Сейчас введенный параметр передается запускаемому приложения в виде переменной %1 и т.д.. Можно ли создать поименованный (например, var1) дубликат этой переменной и чтобы эта переменная была видна из запускаемого приложения (скрипта)?
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Вообще, %1 - это не переменная, это подстановочный знак. А переменные могут быть только окружения, но они видны только в дочерних процессах. Файл - самый простой способ передать что-то запускающему скрипту.
Ответить