Запустить процесс (аналог 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
    5 Posts
    438 Views
  • 0 Votes
    47 Posts
    3964 Views
  • 0 Votes
    3 Posts
    649 Views
  • 0 Votes
    11 Posts
    1624 Views