Path - Модуль для работы с путями

Делитесь модулями
  • @GhostZ Так String по дефолту в 24+ версиях есть. Перепроверил - да, он есть и включен

    • в записи всё работает нормально
  • @DoctorKrolic, в BAS на данный момент используется другая версия модуля строка, нужно либо установить этот модуль, либо в проекте где используется модуль путь использовать любое действие модуля строка.

  • @GhostZ said in Path:

    использовать любое действие модуля строка

    А как это работает, если не секрет. Новая версия с сервера подтянется, или как?

  • @DoctorKrolic, вот так tests.xml, модуль строка не устанавливается если не используется, в будущем общие функции будут вынесены в отдельный модуль и таких проблем не будет.

  • @GhostZ при получении пути к рабочему столу, если там попадаются русские символы, он некорректно их записывает, что делает не возможным использование этого пути. Мне пришлось руками придумать другой алгоритм получения пути к рабочему столу. Пофикси, пожалуйста. А то мой код слишком огромный.
    64409659-d46a-46f2-a221-184fd6bf75a8-image.png
    8b2794b6-1b25-4837-bc67-d7d4ad880143-image.png 2153f6fd-4199-4eb1-b539-d5c401959760-image.png

  • @llimonix, после выполнения действия "Получить системный путь" выполните код [[VAR]] = JSON.stringify(SYSTEM_ENV_DATA) и приложите содержимое переменной [[VAR]]

  • 803bdc84-7a0e-4ad2-a430-524b12ce210c-image.png
    Если получать директорию проекта, то русские символы в пути нормальные, если в вашем же модули ваше дополнение в получение системного пути, то вот такая вот картина из иероглифов

  • @GhostZ said in Path:

    [[VAR]] = JSON.stringify(SYSTEM_ENV_DATA)

    вот ваша прошлая просьба, давно конечно было, но все же
    {"ALLUSERSPROFILE":"C:/ProgramData","APPDATA":"C:/Users/�����/AppData/Roaming","CommonProgramFiles":"C:/Program Files/Common Files","CommonProgramFiles(x86)":"C:/Program Files (x86)/Common Files","CommonProgramW6432":"C:/Program Files/Common Files","COMPUTERNAME":"WIN-CD0SRBHETF1","ComSpec":"C:/Windows/system32/cmd.exe","DriverData":"C:/Windows/System32/Drivers/DriverData","envContainerTelemetryApiCmdLine":"-st "C:/Program Files/NVIDIA Corporation/NvContainer/NvContainerTelemetryApi.dll"","envContainerTelemetryApiCmdLineX86":"-st "C:/Program Files (x86)/NVIDIA Corporation/NvContainer/NvContainerTelemetryApi.dll"","FPS_BROWSER_APP_PROFILE_STRING":"Internet Explorer","FPS_BROWSER_USER_PROFILE_STRING":"Default","HOMEDRIVE":"C:","HOMEPATH":"/Users/�����","LOCALAPPDATA":"C:/Users/�����/AppData/Local","LOGONSERVER":"/WIN-CD0SRBHETF1","NUMBER_OF_PROCESSORS":"12","OS":"Windows_NT","Path":"C:/Program Files (x86)/Common Files/Oracle/Java/javapath;C:/Program Files/Python39/Scripts/;C:/Program Files/Python39/;C:/Windows/system32;C:/Windows;C:/Windows/System32/Wbem;C:/Windows/System32/WindowsPowerShell/v1.0/;C:/Windows/System32/OpenSSH/;C:/Program Files (x86)/NVIDIA Corporation/PhysX/Common;C:/Program Files/NVIDIA Corporation/NVIDIA NvDLISR;C:/Users/�����/AppData/Local/Microsoft/WindowsApps;;D:/�ணࠬ��/Fiddler","PATHEXT":".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW","PROCESSOR_ARCHITECTURE":"AMD64","PROCESSOR_IDENTIFIER":"Intel64 Family 6 Model 167 Stepping 1, GenuineIntel","PROCESSOR_LEVEL":"6","PROCESSOR_REVISION":"a701","ProgramData":"C:/ProgramData","ProgramFiles":"C:/Program Files","ProgramFiles(x86)":"C:/Program Files (x86)","ProgramW6432":"C:/Program Files","PROMPT":"$P$G","PSModulePath":"C:/Program Files/WindowsPowerShell/Modules;C:/Windows/system32/WindowsPowerShell/v1.0/Modules","PUBLIC":"C:/Users/Public","QTWEBKIT_PLUGIN_PATH":"D:/�?�?�?�?�?���?�?�</BrowserAutomationStudio/apps/24.3.1/webkitplugins","SESSIONNAME":"Console","SystemDrive":"C:","SystemRoot":"C:/Windows","TEMP":"C:/Users/7C77~1/AppData/Local/Temp","TMP":"C:/Users/7C77~1/AppData/Local/Temp","USERDOMAIN":"WIN-CD0SRBHETF1","USERDOMAIN_ROAMINGPROFILE":"WIN-CD0SRBHETF1","USERNAME":"�����","USERPROFILE":"C:/Users/�����","VBOX_MSI_INSTALL_PATH":"D:/�ணࠬ��/VirtualBox","windir":"C:/Windows","Desktop":"C:/Users/�����/Desktop","Downloads":"C:/Users/�����/Downloads","Documents":"C:/Users/�����/Documents","Pictures":"C:/Users/�����/Pictures","Videos":"C:/Users/�����/Videos","Music":"C:/Users/�����/Music","Favorites":"C:/Users/�����/Favorites"}"
    SESSID: "08d7e9c6abf9651c53a7b7b175d0cc80

  • @llimonix, это уже пофикшено, перекачайте модуль

  • Действие "Объединить пути" не выбрасывает ошибку, если в аргументы переданы не строки. Но должно.
    ae2d3630-ce41-48fc-9871-08baafce8b18-image.png

    В результат попало '.json' из примера выше.

  • @Sadzurami, undefined и null интерпретируются как пустая строка, и пропускаются, для других не строковых данных выдается ошибка, например если указать число, то действие завершится ошибкой

    a855fe09-169d-4128-8ad0-ffa3ea2fbb44-image.png

  • @GhostZ похоже баг с русскими путями так и не попал в релиз (https://community.bablosoft.com/post/115241).
    Версия 25.3.8, проблема актуальна.

    Проблема находится внутри функции _get_system_data
    Кодировка не задана для processmanager, как это делается в модуле "запустить процесс".

    Строка 799:
    native("filesystem","writefile",JSON.stringify({path:RANDOM_FILE,value:"SET",base64:false,append:false}));
    Поменять на:
    native("filesystem","writefile",JSON.stringify({path:RANDOM_FILE,value:"chcp 65001\r\nSET",base64:false,append:false}));

    Строка 803:
    var data_list = base64_decode(_result().split(",")[0]).split('\r\n').slice(2,-1);
    Поменять на:
    var data_list = base64_decode(_result().split(",")[0]).split('SET\r\n')[1].split('\r\n').slice(0,-1)

    После этого русские пути отображаются корректно. Возможно у вас свой фикс, тем-не-менее, пожалуйста внесите решение в релизную версию.

  • @Sadzurami, нельзя просто так взять и обновить модуль в BAS
    02d7c583-a08c-4e74-876b-8ff9d90e585e-image.png
    bd405e95-624f-4797-bd69-fd8a609ef833-image.png