Передать значение ресурса через командную строку



  • Писал этот вопрос в англоязычной версии форума. Надеюсь, можно дублировать :)

    Подскажите, пожалуйста, можно ли передать переменную через командную строку для silent мода.

    Допустим, у меня есть ресурс с именем: parseurl

    Хотелось бы запускать что-то типа

    script.exe --silent --parseurl http://www.url.com

    Это можно как-то реализовать посредством бас? Т.е. мне нужен не просто запуск с дефолтными настройками ресурсов, а их изменение без запроса от пользователя.

    Спасибо,
    Сергей



  • @cafedelmar Нет



  • @cafedelmar Максимум можете перед запуском менять настройки в файле настроек Actual.xml , а затем запускать silent



  • Понял, спасибо. Жаль, что стандартными методами нельзя. Было бы очень удобно.



  • Вот такая идея пришла: передавать параметры в bat файл, который будет создавать текстовый файл с этими параметрами, а скрипт bas обучить брать данные из этого файла.

    Костыль, конечно, но лучше, чем ничего.


  • administrators

    @cafedelmar said in Передать значение ресурса через командную строку:

    Вот такая идея пришла: передавать параметры в bat файл, который будет создавать текстовый файл с этими параметрами, а скрипт bas обучить брать данные из этого файла.

    Костыль, конечно, но лучше, чем ничего.

    Почему "ничего"? Вам же сказали, все настройки всех ресурсов хранятся в файле actual.xml изменяйте его любым удобным для вас способом и запускайте скрипт.



  • Я не до конца понимаю логику замены actual.xml

    Он меняется после запуска скрипта, а не до. Т.е. мне нужно его генерировать/заменять полностью до запуска, т.к. если запускался другой скрипт, то actual.xml там лежит соответствующий ему, насколько я понял. Я не знаю, хранит ли там BAS какие-то другие данные, чтобы полностью заменять файл и всё работало корректно.

    Менять файл, который не создавал и в котором лежит куча всего остального - в целом, идея не очень хорошая, имхо.



  • @cafedelmar Он меняется после запуска, если вы предыдущие настройки поменяли, а по дефолту он хранит в себе последние данные, которые подружаются при повторном открытии.

    Идея обычная, искать в файле параметр с именем ресурса и заменять его. От этого с файлом ничего не будет.

    Если так рассудить, не очень хорошая и понятная идея делать такой костыль ради запуска через консоль



  • @oyasumi-punpun Видимо, так я и не понял.

    Запускался скрипт Х. Мне нужно запустить скрипт Y с новыми данными.

    Я лезу в actual.xml и ищу параметр с именем ресурса и не нахожу его, т.к. в скрипте Х этого ресурса не было. Верно?


  • administrators

    @cafedelmar said in Передать значение ресурса через командную строку:

    @oyasumi-punpun Видимо, так я и не понял.

    Запускался скрипт Х. Мне нужно запустить скрипт Y с новыми данными.

    Я лезу в actual.xml и ищу параметр с именем ресурса и не нахожу его, т.к. в скрипте Х этого ресурса не было. Верно?

    Запуск с флагом --silent работает только на скомпилированных скриптах. Как у вас получится запустить тот же скрипт, но в котором какие то ресурсы отсутствуют?



  • @fox said in Передать значение ресурса через командную строку:

    Как у вас получится запустить тот же скрипт, но в котором какие то ресурсы отсутствуют?

    Ну в том-то и дело, что не получится, как я понимаю.

    Я запустил какой-то скрипт Х, он создал/подставил свой actual.xml. В нём ресурсы для скрипта Х.

    Я запускаю скрипт Y --silent, предварительно пытаясь изменить actual.xml, в котором ресурсов для Y нет, т.к. он для скрипта Х.

    Т.е. мне нужно полностью менять actual.xml. Запустить Y, сохранить actual.xml для скрипта Y и затем, по мере необходимости, перед запуском его полностью подменять. Я правильно понимаю?


  • administrators

    @cafedelmar said in Передать значение ресурса через командную строку:

    @fox said in Передать значение ресурса через командную строку:

    Как у вас получится запустить тот же скрипт, но в котором какие то ресурсы отсутствуют?

    Ну в том-то и дело, что не получится, как я понимаю.

    Я запустил какой-то скрипт Х, он создал/подставил свой actual.xml. В нём ресурсы для скрипта Х.

    Я запускаю скрипт Y --silent, предварительно пытаясь изменить actual.xml, в котором ресурсов для Y нет, т.к. он для скрипта Х.

    Т.е. мне нужно полностью менять actual.xml. Запустить Y, сохранить actual.xml и затем его полностью подменять. Я правильно понимаю?

    Ещё раз, внимательно прочитайте следующую строку:
    Запуск с флагом --silent работает только на скомпилированных скриптах.

    Файл actual.xml находится внутри скомпилированного скрипта, вы не запустите другой скрипт, только тот, что скомпилировали.

    Не путайте значения ресурсы и значения ресурсов, так как скрипт будет один и тот же, то ресурсы у него будут одни и те же, а вот значения ресурсов как раз таки можно и поменять в actual.xml.



  • @fox said in Передать значение ресурса через командную строку:

    Файл actual.xml находится внутри скомпилированного скрипта, вы не запустите другой скрипт, только тот, что скомпилировали.

    Вот это я не учёл. Я запускал в режиме отладки постоянно и привык, что actual.xml лежит в корневой папке программы. Потому и путаница возникла.

    Спасибо за разъяснение.