Node.js 视窗';启动';VS代码插件中的child_process.exec未执行命令

Node.js 视窗';启动';VS代码插件中的child_process.exec未执行命令,node.js,windows,cmd,visual-studio-code,electron,Node.js,Windows,Cmd,Visual Studio Code,Electron,我正试图通过child\u process.exec()函数从VS代码插件启动一个程序,但程序没有启动。如果我直接从cmdshell执行相同的命令,程序将正常运行 我构建的命令如下所示: var cmd ='start /d "' + process.env['DECKARD_PATH'] + '"' + " /b Deckard.exe" // cmd resolves to 'start /d "C:\Program Files (x86)\Deckard" /b Deckard.exe'

我正试图通过child\u process.exec()函数从VS代码插件启动一个程序,但程序没有启动。如果我直接从
cmd
shell执行相同的命令,程序将正常运行

我构建的命令如下所示:

var cmd ='start /d "' + process.env['DECKARD_PATH'] + '"' + " /b Deckard.exe"
// cmd resolves to 'start /d "C:\Program Files (x86)\Deckard" /b Deckard.exe'
然后尝试执行:

child_process.exec(cmd, (err, stdout, stderr) => {
  // Some stuff but no errors are triggered...
})
请注意,Deckard.exe是一个带有Windows UI的电子应用程序


如有任何建议,将不胜感激。提前感谢。

START是Windows命令解释器的内部命令
cmd.exe
,而不是Windows的System32文件夹中的可执行文件。所以你必须运行
cmd.exe/C…
。同样的问题,什么也没有发生。我的理解是
child\u process.exec()
应该在Windows上的
cmd.exe
shell(以及Linux上的
bash
)上下文中运行
cmd.exe
,为什么要使用
cmd.exe
和START命令?当前工作目录可以根据文档在子进程的选项中定义。您真的需要命令START的后台选项
/B
?根据本文档,需要使用
spawn
而不是
exec
。注意:我不了解Node.js,只了解Windows命令行。所以我已经带着这个建议在天空中拍摄了,希望能对你的问题提供一些有用的信息。