Javascript Node.js(Typescript)中的child_process.spawnSync在Windows上不起作用

Javascript Node.js(Typescript)中的child_process.spawnSync在Windows上不起作用,javascript,node.js,typescript,vscode-extensions,Javascript,Node.js,Typescript,Vscode Extensions,目前,我正在用Typescript在Windows上开发VSCode扩展。预期结果如下: 一个命令提示屏幕(shell)打开,在同一屏幕中执行cmd文件中的所有必要步骤,命令结束时,用户关闭窗口时删除缓存文件 当所有任务结束时,窗口仍然打开 这是我的密码: const command = `cd ${cmdPath} && start /WAIT ${cmdfile} && exit`; const option = { shell: true, det

目前,我正在用Typescript在Windows上开发VSCode扩展。预期结果如下:

  • 一个命令提示屏幕(shell)打开,在同一屏幕中执行cmd文件中的所有必要步骤,命令结束时,用户关闭窗口时删除缓存文件

  • 当所有任务结束时,窗口仍然打开


这是我的密码:

 const command = `cd ${cmdPath} && start /WAIT ${cmdfile} && exit`;
 const option = { shell: true, detached: true }
 child_process.spawnSync(command, option);
 if (isExistFile(cmdfile)) {
    fs.unlinkSync(cmdfile)
 }
 // something to be deleted...
这只起作用一次。这意味着,当用户再次尝试时,什么也没有发生

我认为执行命令“START”的进程被留下并添加了“exit”命令,但没有成功。我不知道为什么这只适用一次

所以,我尝试了另一个代码如下:(我把“开始”改为“调用”。)

此代码几乎可以完美地工作,但不满足屏幕保持打开的要求


我想知道我是否错过了child_process.spawnSync或command的选项。你能帮帮我吗?

如果你希望这一切都是
sync
,那你为什么还要创造一个承诺呢?我不喜欢打字和承诺。。。我知道我需要改进代码-(如果您希望这一切都是
同步的
,那么为什么要创建一个承诺?我与Typescript和promise不相似…我知道我需要改进代码-(
const command = `cd ${cmdPath} && call ${cmdfile} && exit`;
const option = { shell: true, detached: true }
child_process.spawnSync(command, option);
if (isExistFile(cmdfile)) {
   fs.unlinkSync(cmdfile)
}
// something to be deleted...