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命令行。所以我已经带着这个建议在天空中拍摄了,希望能对你的问题提供一些有用的信息。