child_process spawn如何根据磁盘路径打开子进程
时间: 2023-11-22 12:52:47 浏览: 55
使用`child_process.spawn()`打开子进程时,需要将要执行的命令作为第一个参数传入。如果要执行的命令是一个可执行文件的绝对路径,可以直接将该路径作为第一个参数传入。例如,要在Windows系统下使用cmd打开一个文件夹,可以使用以下代码:
```javascript
const { spawn } = require('child_process');
// 要打开的文件夹路径
const folderPath = 'C:\\Users\\username\\Documents\\folder';
// 执行的命令
const command = 'cmd';
// 命令的参数
const args = ['/c', 'start', '', folderPath];
// 执行spawn函数
const childProcess = spawn(command, args);
// 监听子进程的输出
childProcess.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
// 监听子进程的错误输出
childProcess.stderr.on('data', (data) => {
console.error(`stderr: ${data}`);
});
// 监听子进程的关闭事件
childProcess.on('close', (code) => {
console.log(`子进程退出,退出码 ${code}`);
});
```
在上面的代码中,`folderPath`变量存储了要打开的文件夹的路径,`command`变量存储了要执行的命令`cmd`,`args`变量存储了执行命令时的参数。其中,`/c`参数表示在执行完命令后关闭命令窗口,`start`参数表示启动一个新窗口,`''`表示不指定窗口标题,`folderPath`表示要打开的文件夹路径。
在类Unix系统下,可以使用类似的方法打开子进程,只需要将命令改为`open`,参数改为`[folderPath]`即可。