Страница 8 из 20

Добавлено: Пт дек 19, 2014 12:24
Flasher
gora писал(а):мне здесь предлагают любой скрипт для получения (передачи) параметра в файл, а VBS для этого и не подходит.
Не в файл, а в переменную. И по какой причине не подходит? Причина может быть только одна - кавычки нужны внутри записи, а не по краям. Это так? Если да, то зачем?
И тут это решается заменой, например, на апостроф, а в скрипте - обратной заменой через Replace.

Добавлено: Пт дек 19, 2014 12:29
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

Добавлено: Пт дек 19, 2014 12:34
Flasher
А почему тогда не использовать в качестве параметров записи в кавычках? Т.е. в данном случае 6 параметров.

Добавлено: Пт дек 19, 2014 12:35
gora
Flasher писал(а):Не в файл, а в переменную.
В какую переменную? Мне здесь объяснили, что я могу получить параметр для своих целей ТОЛЬКО через файл! О какой переменной разговор?

Добавлено: Пт дек 19, 2014 12:36
Flasher
Советую перечитать внимательнее.

Добавлено: Пт дек 19, 2014 12:39
gora
Flasher
Я не люблю такой разговор. Вместо помощи одни вопросы в стиле:"А нафига так делать, а не эдак?" Мне дольше объяснять и доказывать правильность своего решения, лучше уж не надо такой помощи...
Не обессудьте.

Добавлено: Пт дек 19, 2014 12:44
Flasher
gora
А, т.е. это чисто для себя делается, а не для людей. Ну, тогда ясно. Больше помогать не буду.

Добавлено: Пт дек 19, 2014 12:59
MVV
Не пойму, в чем сложность вызова cmd для записи в файл? И почему нельзя вызвать приложение с указанными параметрами прямо из AskParam?

Только через файл - это в случае, если предполагается дальнейшая обработка выборов пользователя в AskParam в скрипте.

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

Добавлено спустя 7 минут:
MVV писал(а):в чем сложность вызова cmd для записи в файл?
Приходится перекодировать файл с кириллицей

Добавлено: Пт дек 19, 2014 13:29
MVV
А если в файле будет UTF-16 без маркера?

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

AskParam.exe /pt /s0 /w cmd /u /c "echo %1>d:\1.txt"

Добавлено: Пт дек 19, 2014 13:57
gora
MVV
Спасибо, попробую. Правда переменную (%1) придется заключать в кавычки, а потом их в скрипте удалять. И какие еще фокусы могут преподнести спец символы, которые могут быть введены пользователем, будучи посланные в CMD...

Добавлено: Пт дек 19, 2014 19:58
gora
MVV
От спец символов не спасают даже кавычки. :(
CMD, в данном случае, не обеспечивают надежную запись в файл.
Жду Вашего решения о модификации утилиты.

Добавлено: Пт дек 19, 2014 20:08
MVV
Такая функция совершенно не вписывается в концепцию.
Уверен, можно найти внешнюю утилиту для записи строки в файл.

Добавлено: Вс дек 21, 2014 11:25
gora
MVV
Зайдем с другого конца...
Сейчас введенный параметр передается запускаемому приложения в виде переменной %1 и т.д.. Можно ли создать поименованный (например, var1) дубликат этой переменной и чтобы эта переменная была видна из запускаемого приложения (скрипта)?

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