gpt4 book ai didi

node.js - Node child_process.spawn 不适用于 Windows 路径中的空格

转载 作者:IT老高 更新时间:2023-10-28 23:26:58 33 4
gpt4 key购买 nike

如何提供 child_process.spawn

的路径

例如路径:

c:\users\marco\my documents\project\someexecutable

路径由最终用户从配置文件中提供。

var child_process = require('child_process');
var path = require('path');
var pathToExecute = path.join(options.toolsPath, 'mspec.exe');
child_process.spawn(pathToExecute, options.args);

目前只有空格后面的部分被child_process.spawn

使用

我还尝试在路径周围添加引号,如下所示:

var child_process = require('child_process');
var path = require('path');
var pathToExecute = path.join(options.toolsPath, 'mspec.exe');
child_process.spawn('"' + pathToExecute + '"', options.args);

但是这会导致 ENOENT 错误。

最佳答案

第一个参数必须是命令名,而不是可执行文件的完整路径。有一个名为 cwd 的选项来指定进程的工作目录,您还可以确保可执行文件是可访问的,将其添加到您的 PATH 变量中(可能更容易做到)。

此外,传递给 spawnargs 数组不应包含空元素。

您的代码应如下所示:

child_process.spawn('mspec.exe', options.args, {cwd: '...'});

关于node.js - Node child_process.spawn 不适用于 Windows 路径中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21356372/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com