Я попробовал обратиться к ресурсу {{config_path}}, используя BAS API вот так
Тип {{config_path}} обычныая строка, в которой указан путь для конфига
Но в var config_path задается пустой словарь {}
Приветствую, так как с действием "Запустить процесс" часто проблемы (перестает работать через 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));
}