使用子进程 NodeJS 运行 exe 文件

Posted

技术标签:

【中文标题】使用子进程 NodeJS 运行 exe 文件【英文标题】:Run exe file with Child Process NodeJS 【发布时间】:2014-07-08 23:43:16 【问题描述】:

我想用 nodejs 打开谷歌浏览器,但是我得到了这个错误(我使用了 execFile 和 spawn),

代码

var execFile = require('child_process').execFile,
spawn = require('child_process').spawn,

spawn('C\\Program Files\\Google\\Chrome\\Application\\chrome.exe', function (error, stdout, stderr) 
   if (error !== null)  console.log('exec error: ' + error); 
);

events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: spawn ENOENT
at errnoException (child_process.js:998:11)
at Process.ChildProcess._handle.onexit (child_process.js:789:34)

【问题讨论】:

我认为,您在文件路径中缺少:。我觉得应该是C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe 我用 start iexplore 修复了它 但是现在我在启动 linux 命令时遇到了问题,同样的问题。 spawn('google-chrome') 你能贴一个linux的例子吗 这很奇怪,我在 mac 中创建了一个包含所有命令的 json 文件,在 windows 和 linux 中,这些字符串以某种方式损坏。在linux和windows机器上改了,现在可以了。为什么? 【参考方案1】:

每个命令都在一个单独的 shell 中执行,所以第一个 cd 只影响那个 shell 进程,然后终止。如果您想在特定目录中运行 git,只需让 Node 为您设置路径即可:

exec('git status', cwd: '/home/ubuntu/distro', /* ... */);

cwd(当前工作目录)是 exec 可用的众多选项之一。refer to link

【讨论】:

以上是关于使用子进程 NodeJS 运行 exe 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 pyinstaller 将多个子进程 python 文件编译成单个 .exe 文件

Windows 上的 Python 子进程:启动子进程“cmd.exe”并为其提供 bat 文件,停止主进程执行

子进程似乎在 pyinstaller exe 文件中不起作用

什么linux用户做nodejs子进程运行?

监控进程的子进程

nodejs 怎样检测子进程执行完成