Ошибка NodeJs: создать C: \ Windows \ system32 \ cmd.exe; ENOENT

Это мой сценарий:

var exec = require('child_process').exec;

    exec('dir', function(error, stdout, stderr) {  // 'dir' is for example
      if (error) {
        console.error(`exec error: ${error}`);
        return;
      }
      console.log(`stdout: ${stdout}`);
      console.log(`stderr: ${stderr}`);
    });

А в консоли у меня есть:

exec error: Error: spawn C:\Windows\system32\cmd.exe; ENOENT

Кто-нибудь может мне помочь?


person Jiohn Dioe    schedule 19.07.2016    source источник
comment
Мне кажется, что у Node нет PATH или нет разрешения на запуск cmd.exe. Он пытается запустить cmd.exe для вас (потому что вы дали встроенный dir, и он такой умный), но не может его найти (либо потому, что его на самом деле нет, либо так сказала ОС, когда отказ в доступе).   -  person T.J. Crowder    schedule 19.07.2016
comment
Большое спасибо @ T.J. Crowder, я собираюсь продолжить поиск с вашим советом :)   -  person Jiohn Dioe    schedule 19.07.2016
comment
@ T.J.Crowder У меня тоже есть: {[Ошибка: создать C: \ Windows \ system32 \ cmd.exe; ENOENT] код: 'ENOENT', номер ошибки: 'ENOENT', syscall: 'spawn C: \\ Windows \\ system32 \\ cmd.exe;', путь: 'C: \\ Windows \\ system32 \\ cmd.exe ; ', spawnargs: [' / s ',' / c ',' dir '], cmd:' C: \\ Windows \\ system32 \\ cmd.exe; / s / c dir '} Вы видите другое?   -  person Jiohn Dioe    schedule 19.07.2016
comment
Я нашел исправление, см. Мой ответ: stackoverflow.com/questions/40798047/   -  person Thomas    schedule 27.07.2017
comment
в Windows 7 установка инструментов сборки окна устранила проблему, github. ru / felixrieseberg /   -  person vikas etagi    schedule 25.01.2019


Ответы (3)


Это также может быть вызвано тем, что вы вводите в ExecOptions параметр options, в частности 'cwd', и путь, который вы указываете, недействителен.

e.g:

cp.exec(<path_to_executable>, {
  cwd: <path_to_desired_working_dir>
}, (err, stdout, stderr) => {
  //......
})

Если это недопустимо, обратный вызов будет вызван с ошибкой, равной

Ошибка: создать C: \ Windows \ system32 \ cmd.exe ENOENT

person hugeandy    schedule 19.11.2019
comment
Спасибо, это был мой случай. - person Nurbol Alpysbayev; 27.11.2019
comment
что ты тогда на cwd переходил? - person Thalinda Bandara; 06.02.2021

Мне нужно решить проблему, проблема заключается в том, чтобы удалить точку с запятой (;) с конца пути ComSpec C: \ Windows \ System32 \ cmd.exe

Мой компьютер> Свойства> Дополнительные системные настройки> Переменные среды> Системные переменные

добавьте этот путь:  введите описание изображения здесь ComSpec C: \ Windows \ System32 \ cmd.exe

person sudheer nunna    schedule 09.03.2019

Для тех, у кого все еще есть проблемы с этим

Что исправило для меня, так это то, что мой каталог решения находился на другом диске, чем Windows.Создание моего решения на моем диске C решило проблему для меня.

person Ruan    schedule 09.02.2021