Запустить процесс (аналог node.js)

Поддержка
  • Приветствую, так как с действием "Запустить процесс" часто проблемы (перестает работать через 4 часа).
    Пробовал я сделать аналог через node.js (child_process).
    Но получилось только сделать запуск процесса.
    Перерыл куча инфы, но так и не смог через бас сделать такие действия как "Ждать завершения", "Стандартный вывод процесса", "Вывод процесса с ошибками".
    Может у кого-то есть идеи как можно реализовать эти действия через node.js.
    Так же интересно как работает оригинальный модуль, помню упоминалось что он работает через .bat, ну все же интересно как оно этот .bat запускает.

  • @m1ax said in Запустить процесс (аналог node.js):

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

    Модуль Nodejs? Через Windows pipes и разумется интеграция в самом БАС

  • @m1ax said in Запустить процесс (аналог node.js):

    Перерыл куча инфы, но так и не смог через бас сделать такие действия как "Ждать завершения", "Стандартный вывод процесса", "Вывод процесса с ошибками".

    Вот из модуля Android Manager.

    const { spawn } = require("child_process");
    
    
    async function spawnChild(cmd, params) {
        const child = spawn(cmd, params, {shell: true});
    
        let data = "";
        for await (const chunk of child.stdout) {
            data += chunk;
        }
        let error = "";
        for await (const chunk of child.stderr) {
            error += chunk;
        }
        const exitCode = await new Promise((resolve, reject) => {
            child.on("close", resolve);
        });
        if (exitCode) throw new SubprocessError(exitCode, error || data);
    
        return data;
    }
    
    module.exports = async (cmd, params=[]) => {
        return spawnChild(cmd, params)
            .then(data => data.split("\r\n").filter(el => el));
    }
    

  • 0 Votes
    1 Posts
    203 Views
  • 0 Votes
    9 Posts
    893 Views
  • 0 Votes
    2 Posts
    439 Views
  • 0 Votes
    3 Posts
    547 Views
  • 0 Votes
    5 Posts
    2038 Views