@mansory333 бас хитрее делает он не экранирует он эскейпит
составляете ее так же как обычно а потом ее .escape()
Но вам не надо добавлять в регулярку для баса служебные операторы) gm это область применения бас все это сам знает. Вы собственно решили задачу подав вторым аргументом gm
Применение в басе js довольно специфичное ) некоторые вещи работают не так как ожидают я про механику выполнения, они просто работают иначе. фрейморк.
upd 2 скорее всего это связанно что сам бас на С+ вроде
Запустить процесс (аналог 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)); }