Как проверить версию скомпилированного скрипта?

Поддержка
  • Скомпилил скрипт и дал его юзеру.
    У меня премиум BAS.
    Вот думаю, например я выкатил обнову как сделать оповещение юзеру чтоб он нажал желтую кнопку "перезапустить" ?
    цц.png

    Решил пока что так:
    Добавил в скрипт проверку на моем домене что в определенном txt файле записана цифра "1", скрипт каждые 10 минут проверяет этот файл. И если там цифра 1, то выдает в логе чтоб юзер обновил скрипт.

    Но тут есть загвоздка. Ведь не все же пользователи сразу нажмут "перезапустить" , поэтому такой вопрос:
    Можно ли как то внутри скрипта проверять текущую версию скомпилиного скрипта?

    Например у юзера версия 1.0.0 (см на скрине) , ну а дальше уже легко сделать что если у юзера версия ниже чем например записана в файле на моем домене, то только тогда выдаём ему сообщение чтоб нажал "перезапустить" ,

  • @Nikolas said in Как проверить версию скомпилированного скрипта?:

    Можно ли как то внутри скрипта проверять текущую версию скомпилиного скрипта?

    Стандартного способа нет. Пути шлифануть напильником есть.

  • @sergerdn В общем сделал так, может кому-то будет полезно.

    • написал код (в нём замените NameYourScript на ваше название скопиленого крипта) который закидываем в экшен Запустить Процесс
    @echo off
    PowerShell -Command "Get-Process | Where-Object { $_.MainWindowTitle -like '*NameYourScript*' } | Format-Table Id, Name, MainWindowTitle -AutoSize"
    
    
    • По завершению работы экшена в перем [[PROCESS_STANDART_OUTPUT]]
      ыыс.png

    • будет ответ содержащий значение текущей запущенной у пользователя версии скомпиленого скрипта:
      цц2.png

    • если это значение отличается например от того что указал админ скрипта (например я указал в txt файле на моем домене\хостинге), то пользователю выводится в лог сообщение с просьбой обновиться (нажать кнопку "Перезапуск").
      цц3.png

  • @Nikolas said in Как проверить версию скомпилированного скрипта?:

    @sergerdn В общем сделал так, может кому-то будет полезно.

    • написал код (в нём замените NameYourScript на ваше название скопиленого крипта) который закидываем в экшен Запустить Процесс

    • По завершению работы экшена в перем [[PROCESS_STANDART_OUTPUT]]

    • будет ответ содержащий значение текущей запущенной у пользователя версии скомпиленого скрипта:

    • если это значение отличается например от того что указал админ скрипта (например я указал в txt файле на моем домене\хостинге), то пользователю выводится в лог сообщение с просьбой обновиться (нажать кнопку "Перезапуск").

    Более надёжный способ сохранять внутри скрипта версию скрипта и сравнивать её из вне, например отправляя запрос в гугл таблицу

  • @Fox попробовал так , и вы знаете - так и правда надежнее, но кубиков больше. т.к. пришлось сохранять текущую версию скрипта при первом запуске скрипта в папке скрипта (в txt файле) и потом периодически сравнивать значение из txt файла с значением из гугл-таблицы.

  • @Nikolas said in Как проверить версию скомпилированного скрипта?:

    @Fox попробовал так , и вы знаете - так и правда надежнее, но кубиков больше. т.к. пришлось сохранять текущую версию скрипта при первом запуске скрипта в папке скрипта (в txt файле) и потом периодически сравнивать значение из txt файла с значением из гугл-таблицы.

    Вместо файла используйте глобальную переменную

  • @Fox said in Как проверить версию скомпилированного скрипта?:

    Более надёжный способ сохранять внутри скрипта версию скрипта

    Я долго думал, почему надежнее, так и не придумал.

    Я всегда считал, что надежнее - это когда исключен человеческий фактор.

    А сохранять ручками перед билдом внутри скрипта его будущую версию, выглядит не надежно, так как можно забыть или ошибиться.

  • @sergerdn said in Как проверить версию скомпилированного скрипта?:

    @Fox said in Как проверить версию скомпилированного скрипта?:

    Более надёжный способ сохранять внутри скрипта версию скрипта

    Я долго думал, почему надежнее, так и не придумал.

    Я всегда считал, что надежнее - это когда исключен человеческий фактор.

    А сохранять ручками перед билдом внутри скрипта его будущую версию, выглядит не надежно, так как можно забыть или ошибиться.

    Я же вставил цитату, надёжный по сравнению с сохранением версии в текстовый файл.

  • @Nikolas

    Можно так:

    (Get-Process | Where-Object { $_.Name -eq 'FastExecuteScript' -and $_.MainWindowTitle -like '*MyCoolProgram*' } | Select-Object -ExpandProperty MainWindowTitle) -replace '.*\((.*)\).*', '$1'
    

    Выведет:

    0.1.51