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

Поддержка
  • Скомпилил проект.
    Папка с скомпиленым проектом лежит тут:
    C:\BrowserAutomationStudio\release\Autoreger

    Запустил экзешник из C:\BrowserAutomationStudio\release\Autoreger , и далее выбрал запуск через Планировщика и настроил планировщик, и тут начинается самое интересное))

    В скрипте стоит определение разных путей, и т. к. скрипт стоит в Планировщике, то вот эти переменные и пути показывают пути Планировщика ,но не этой папки: C:\BrowserAutomationStudio\release\Autoreger

    Вот что показывают разные встроенные в бас экшены определения путей:

    • "Путь к файлу проекта" в переменной PROJECT_PATH_CLEAN: C:/Users/Administrator/AppData/Local/TaskScheduler/1.6.0/app/appsremote/Autoreger/SID87da65b4/engine/project.xml

    • "Путь установки" в переменой INSTALLATION_PATH: C:/Users/Administrator/AppData/Local/TaskScheduler/1.6.0/app/appsremote/Autoreger/SID87da65b4/engine

    • "Путь к файлу проекта" в переменой PROJECT_PATH: C:/Users/Administrator/AppData/Local/TaskScheduler/1.6.0/app/appsremote/Autoreger/SID87da65b4/engine/project.xml

    Вопрос: Как инструментами BASa получить вот этот путь? C:\BrowserAutomationStudio\release\Autoreger

  • Путь к директории проекта, ты был близок)

  • @moonsoon я вкурсе этого экшена PROJECT_DIRECTORY , и вот что он показывает: C:/Users/Administrator/AppData/Local/TaskScheduler/1.6.0/app

    а ни как не путь к папке релиза (откуда был запущен перед созданием задания в планировщике) : C:\BrowserAutomationStudio\release\Autoreger

    Вот кстати остальные экшены проверил:

    SISTEMNIY_PYT_TEMP C:/Users/ADMINI~1/AppData/Local/Temp
    SISTEMNIY_PYT_PROGRAM_FILES C:/Program Files
    SISTEMNIY_PYT_TEMP_PROGRAM_FILES_86 C:/Program Files (x86)
    SISTEMNIY_PYT_DESKTOP C:/Users/Administrator/Desktop
    SISTEMNIY_PYT_DOWNLOADS C:/Users/Administrator/Downloads
    SISTEMNIY_PYT_TEMP_DOCUMENTS C:/Users/Administrator/Documents
    SISTEMNIY_PYT_PICTURES C:/Users/Administrator/Pictures
    SISTEMNIY_PYT_VIDEOS C:/Users/Administrator/Videos
    SISTEMNIY_PYT_MUSIC C:/Users/Administrator/Music
    SISTEMNIY_PYT_FAOVORITES C:/Users/Administrator/Favorites
    SISTEMNIY_PYT_APP_DATA C:/Users/Administrator/AppData/Roaming
    SISTEMNIY_PYT_LOCAL_APP_DATA C:/Users/Administrator/AppData/Local
    SISTEMNIY_PYT_USER_PROFILE C:/Users/Administrator
    SISTEMNIY_PYT_PUBLIC C:/Users/Public
    SISTEMNIY_PYT_PROGRAM_DATA C:/ProgramData
    SISTEMNIY_PYT_SYSTEM_DRIVE C:
    SISTEMNIY_PYT_WINDOWS_DIRECTORY C:/Windows
    SISTEMNIY_PYT_USER_NAME Administrator
    SISTEMNIY_PYT_COMPUTER_NAME WIN-LIVFRVQFMKO
    

    нигде даже намёка на папку с "релизом"

  • @Nikolas

    В BAS выполни bat скрипт и получи нужные тебе данные. Процесс может быть не один, если больше одного скрипта запущено, и нужно будет отфильтровать результат вывода wmic в этом случае.

    wmic process where "name='FastExecuteScript.exe'" get ExecutablePath, Commandline /FORMAT:csv
    
    Node,CommandLine,ExecutablePath
    WIN-BUUUU,appsremote\PyBasFree\SID_some\engine\FastExecuteScript.exe ,D:\Projects\PycharmProjects\github\sergerdn\py-bas-automation\bas_release\PyBasFree\appsremote\PyBasFree\SID_some\engine\FastExecuteScript.exe
    
  • @Nikolas не думаю что возможно сделать то, что вы хотите. Ведь планировщик действительно запускает проект из своей дерриктории, а не из папки вашего дистрибутива.

    Проще вынести в настройки скрипта путь к папке с нужными для скрипта ресурсами.

  • @sergerdn
    Пробовал разные exe-ники:

    FastExecuteScript.exe
    BrowserAutomationStudio.exe
    Autoreger.exe
    

    но ответ один и тот же, только путь планировщика отображается , а вот эти вообще не видит BrowserAutomationStudio.exe
    Autoreger.exe
    что и в принципе логично :

    через FastExecuteScript.exe---PROCESS_STANDART_OUTPUT: C:\Users\Administrator\AppData\Local\TaskScheduler\1.6.0\app\appsremote\Autoreger\SID87da65b4\engine>chcp 65001 Active code page: 65001 C:\Users\Administrator\AppData\Local\TaskScheduler\1.6.0\app\appsremote\Autoreger\SID87da65b4\engine>wmic process where "name='FastExecuteScript.exe'" get ExecutablePath, Commandline /FORMAT:csv Node,CommandLine,ExecutablePath WIN-LIVFRVQFMKO,appsremote\Autoreger\SID87da65b4\engine\FastExecuteScript.exe --silent --scheduler-key yenkozqgzo,C:\Users\Administrator\AppData\Local\TaskScheduler\1.6.0\app\appsremote\Autoreger\SID87da65b4\engine\FastExecuteScript.exe ... PROCESS_ERROR_OUTPUT: 
    через BrowserAutomationStudio.exe---PROCESS_STANDART_OUTPUT: C:\Users\Administrator\AppData\Local\TaskScheduler\1.6.0\app\appsremote\Autoreger\SID87da65b4\engine>chcp 65001 Active code page: 65001 C:\Users\Administrator\AppData\Local\TaskScheduler\1.6.0\app\appsremote\Autoreger\SID87da65b4\engine>wmic process where "name='BrowserAutomationStudio.exe'" get ExecutablePath, Commandline /FORMAT:csv Node, ... PROCESS_ERROR_OUTPUT: No Instance(s) Available. 
    через Autoreger.exe---PROCESS_STANDART_OUTPUT: C:\Users\Administrator\AppData\Local\TaskScheduler\1.6.0\app\appsremote\Autoreger\SID87da65b4\engine>chcp 65001 Active code page: 65001 C:\Users\Administrator\AppData\Local\TaskScheduler\1.6.0\app\appsremote\Autoreger\SID87da65b4\engine>wmic process where "name='Autoreger.exe'" get ExecutablePath, Commandline /FORMAT:csv Node, ... PROCESS_ERROR_OUTPUT: No Instance(s) Available.
    
    • А мне нужен этот путь:

    йф.png

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

    А мне нужен этот путь:

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

  • @UserTrue видимо надо мне еще создать топик в разделе запросы функционала.
    Офтопик:

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

    @UserTrue видимо надо мне еще создать топик в разделе запросы функционала.
    офтопик

    Если заняться не чем то создайте )))

  • @Nikolas

    Вероятно, если хак - создать ресурс в скрипте.

    Что нужно:

    • создать ресурс и задать ему значение по умолчанию как путь к скомпилированному скрипту, так как это заранее известное значение
    • скомпилировать скрипт

    Тогда при запуске скрипта откуда угодно можно будет получить этот самый путь.