В настоящее время я разрабатываю расширение VSCode, работающее на Windows с Typescript. Ожидаемый результат:
Открывается один экран командной строки (оболочка), выполняется все необходимые шаги в файле 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», но тщетно. Я не уверен, почему это работает только один раз.
Итак, я попробовал другой код следующим образом: (Я изменил «START» на «CALL».)
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...
Этот код работает почти идеально, но не соответствует требованию, чтобы экран оставался открытым.
Мне интересно, пропустил ли я параметр child_process.spawnSyn c или команду. Не могли бы вы помочь мне?