Не является внутренней или внешней командой, исполняемой программой или пакетным файлом — как исправить?
При выполнении команд в командной строке Windows 10 и Windows 11 вы можете получить сообщение об ошибке, где указано первое «слово» вашей команды — adb.exe, pip или python, npm или git, java, telnet или любое другое, а далее — не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
В этой инструкции подробно о том, что означает такое сообщение, почему появляется и как исправить ошибку при выполнении наиболее распространённых команд в командной строке.
Причины ошибки «Не является внутренней или внешней командой» при выполнении команд в командной строке Windows 10 и Windows 11
Для того, чтобы понять суть ошибки, давайте рассмотрим, что происходит при выполнении команды в командной строке, в качестве примера будем использовать такой код:
- В случае, если «команда» является собственной встроенной командой консоли (в качестве примера — cls), она выполняется с заданными параметрами.
- Если «команда» — это какой-то файл .exe, .cmd, .bat или иной, например, pip, python или adb, выполняется попытка его запуска из расположения, где запущена командная строка (выделено на изображении ниже) или из расположений, добавленных в системную переменную PATH (о которой поговорим подробнее далее). При удачном запуске и правильно переданных параметрах команда выполняется.
Отсюда следуют наиболее распространённые причины появления ошибки при выполнении команды:
- Самая распространённая причина — отсутствие исполняемого файла в папке, где запущена командная строка и в папках, содержащихся в PATH.
- Ошибки при написании команды: при ошибке в имени файла, он не будет найден, что и приведёт к указанной ошибке.
- Файл отсутствует где-либо, например, вы пробуете использовать telnet, в то время, когда соответствующий компонент Windows не установлен.
- Редко — запускаемый через командную строку файл действительно не является исполняемой программой: изначально сам по себе или из-за повреждений.
Теперь о том, что делать в рассматриваемой ситуации.
Как исправить ошибку
Для исправления ошибки «Не является внутренней или внешней командой, исполняемой программой или пакетным файлом» в зависимости от ситуации можно использовать следующие подходы.
Переход к папке с исполняемым файлом в командной строке
Если выполнение команды требуется не на регулярной основе, достаточно перейти в командной строке в папку, содержащую нужный файл, делается это следующим образом:
- Например, мы знаем, что python.exe для последней версии Python на момент написания этой статьи располагается в папкеpip.exe — там же во вложенной папке Scripts (если окажется не ясным, как попасть в эту папку, процесс показан в видео ниже), adb.exe — где-то в папке с platform-tools и так далее. Скопируйте этот путь, сделать это можно из адресной строки проводника.
- Если командная строка запущена на том же диске, где находится нужный исполняемый файл, введите команду вида:
- Если командная строка запущена на диске C:, а исполняемый файл находится на другом диске, то перед 2-м шагом используйте команду вида (здесь D меняем на нужную букву диска) D: с последующим нажатием Enter.
- Введите нужную команду, которая ранее сообщала об ошибке — теперь она должна выполниться успешно.
Добавление папки с программой в системную переменную среды PATH
В случае, когда использование команд требуется регулярно, например, для git, разумным будет добавить папку с этим исполняемым файлом в PATH, чтобы затем в любой момент времени выполнять команды, независимо от того, в какой папке открыта командная строка:
- Введите в поиск на панели задач Windows 10 или Windows 11 «Изменение переменных среды» или нажмите клавиши Win+R, введите sysdm.cpl, нажмите Enter, а в окне свойств системы перейдите на вкладку «Дополнительно».
- Нажмите кнопку «Переменные среды».
- В следующем окне вы можете добавить папку с исполняемым файлом в переменную PATH только для текущего пользователя или для системы в целом. Выбираем Path в нижней панели и нажимаем «Изменить».
- В следующем окне нажимаем «Создать» и вставляем путь к папке с исполняемым файлом, используемом в вашей команде.
- Сохраняем настройки. Также следует перезапустить командную строку.
Готово: если всё было указано верно, теперь вы сможете выполнять соответствующие команды без указания полного пути к исполняемым файлам, а сообщение об ошибке появляться не будет.
Примечание: если ошибка возникает при использовании команд python, обратите внимание, что при первоначальной установке вам предложат добавить необходимые пути в PATH (отметка Add Python to PATH), то же самое часто бывает и при установке других программ:
Установка недостающих компонентов
Иногда проблема возникает из-за того, что нужный файл попросту отсутствует на компьютере:
- Вы пробуете использовать команды telnet, но не зашли в Панель управления —Программы и компоненты — Включение или отключение компонентов Windows и не включили «Клиент Telnet».
- Запускаете команды pyinstaller, но предварительно не установили его командой pip install pyinstaller
- Пробуете использовать команды adb.exe, но не установили необходимые компоненты Android SDK Platform Tools.
Аналогичная ситуация может быть и для многих других, не входящих в стандартную поставку Windows 10 и Windows 11 компонентов, например, java.
Если ошибка возникает при запуске системных инструментов Windows
В ситуации, когда сообщение «Не является внутренней или внешней командой» в командной строке выдается при попытке использовать системные инструменты, такие как sfc /scannow или slmgr:
- Внимательно проверьте правильность написания команды: раскладка, пробелы.
- Убедитесь, что соответствующие файлы есть в системе (обычно — в C:\Windows\System32). Попробуйте запустить их напрямую из этой папки (перейдя в папку с помощью cd C:\Windows\System32) и с указанием расширения, для файлов в примере — sfc.exe и slmgr.vbs
- Убедитесь, что в системной переменной среды PATHEXT указаны следующие расширения: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
Видео инструкция
Надеюсь, статья и видео помогли разобраться с проблемой и помогли в её решении. Остаются вопросы? — задавайте их в комментариях, я постараюсь ответить.
«Узел ENV» не распознается как внутренняя или внешняя команда, действующая команда или пакетный файл
Я пытаюсь настроить среду для node.js app. но я получаю «NODE_ENV» не распознается как внутренняя или внешняя команда, действующая команда или пакетный файл. ошибка каждый раз.
что это значит и как я могу решить эту проблему?
Я использую Windows, а также попробовал set NODE_ENV=development но не повезло.
помогите! Спасибо заранее.
8 ответов
похоже, что ваша ошибка происходит от попытки запустить что-то вроде этого (что работает в Linux)
эквивалент в Windows будет
работает в той же командной оболочки. Вы упомянули, что set NODE_ENV не работал, но не было ясно, как/когда вы его выполнили.
для windows используйте & между команда. Как,
Я написал модуль для этого: win-node-env.
создает NODE_ENV.cmd задает NODE_ENV переменные среды и порождает дочерний процесс с остальной частью команды и ее аргументы.
просто установите его (глобально) и запустите команды сценария npm, он должен автоматически заставить их работать.
- npm install «cross-env» модуль.
- изменить код как cross-env NODE_ENV=development node foo.js . Тогда вы можете запустить like npm run build .
вызовет NODE_ENV содержать пробел в конце:
как указано в комментарии здесь, используйте этот код:
использовать win-node-env, для использования его просто запустите ниже команды на вашем cmd или power shell или git bash :
«NODE_ENV» не распознается как внутренняя или внешняя команда, оперативная команда или командный файл
Я пытаюсь настроить среду для приложения Node.js. но я получаю эту ошибку каждый раз.
«NODE_ENV» не распознается как внутренняя или внешняя команда, действующая команда или пакетный файл.
Что это значит и как я могу решить эту проблему?
Я использую Windows, а также попытался set NODE_ENV=development но не повезло.
ОТВЕТЫ
Ответ 1
Похоже, ваша ошибка возникает из-за попытки запустить что-то вроде этого (что работает в Linux)
эквивалент в Windows будет
работает в той же командной оболочке. Вы упомянули, что NODE_ENV не работает, но неясно, как/когда вы его выполнили.
Ответ 2
для окон используется & между командами. Как,
Ответ 3
Я написал для этого модуль: win-node-env.
Он создает NODE_ENV.cmd , который устанавливает переменную среды NODE_ENV и порождает дочерний процесс с остальной частью команды и ее аргументами.
Просто установите его (глобально) и запустите свои команды npm script, он должен автоматически заставить их работать.
Ответ 4
- npm install «cross-env» .
- измените код как cross-env NODE_ENV=development node foo.js . Затем вы можете запустить как npm run build .
Ответ 5
Используйте win-node-env, для этого просто запустите команду ниже на вашем cmd или power shell или git bash :
После этого все как в Linux.
Ответ 6
приведет к тому, что NODE_ENV будет содержать пробел в конце:
Как уже упоминалось в комментарии здесь, используйте это вместо:
Ответ 7
Работал для меня
Ответ 8
Большинство ответов там не помогли мне..
Что мне помогло, так это NODE_ENV=production&& nodemon app/app.js
Обратите внимание на пространство. Удачи.
Ответ 9
Для тех, кто использует Git Bash и имеет проблемы с npm run
http://askdev.ru/q/uzel-env-ne-raspoznaetsya-kak-vnutrennyaya-ili-vneshnyaya-komanda-deystvuyuschaya-komanda-ili-paketnyy-fayl-22546/
http://utyatnishna.ru/info/88872/nodeenv-is-not-recognized-as-an-internal-or-external-command-operable-command-or-batch-file