Сообщение "pm" не является внутренней или внешней командой, исполняемой программой или пакетным файлом появляется в командной строке Windows, когда система не находит исполняемый файл с именем pm ни в текущей папке, ни в каталогах, перечисленных в переменной окружения PATH. Чаще всего за этим стоит одна из двух ситуаций: либо вы пытались запустить npm (менеджер пакетов Node.js), но команда оборвалась или была введена с опечаткой, либо требуемая утилита действительно не установлена в системе.
Важный момент: самой по себе стандартной команды pm в Windows нет. Поэтому ошибка почти всегда указывает на опечатку, повреждённую установку инструмента разработки или сбитую переменную PATH. Ниже разберём, как определить источник проблемы и устранить её без переустановки системы.
Что означает эта ошибка
Командный интерпретатор cmd.exe при вводе любой команды ищет соответствующий файл в строго определённом порядке: сначала среди встроенных команд, затем в текущем каталоге, затем во всех папках из переменной PATH. Если ни в одном месте файл pm.exe, pm.bat или pm.cmd не найден, выводится именно это сообщение.
На практике под pm пользователи обычно подразумевают один из инструментов:
- 🔹 npm — пакетный менеджер Node.js, который вводится именно с буквой «n», и опечатка в одну клавишу даёт такую ошибку;
- 🔹 pm2 — менеджер процессов для Node.js-приложений, где часть команды могла быть потеряна при копировании;
- 🔹 pnpm — альтернативный пакетный менеджер, сокращение которого иногда вводят не полностью;
- 🔹 сторонние скрипты и алиасы, созданные самим пользователем и потерянные после переустановки системы.
Определить, какой именно инструмент нужен, проще всего по контексту: вспомните, какую инструкцию вы выполняли, и сверьте команду посимвольно с оригиналом.
Шаг 1. Проверьте команду на опечатки
Прежде чем менять настройки системы, убедитесь, что команда введена верно. Скопируйте её из источника заново, а не набирайте по памяти. Обратите внимание на регистр, дефисы и пробелы — pm install и npm install для интерпретатора принципиально разные вещи.
Если команда копировалась из PDF, мессенджера или веб-страницы, возможна подмена символов: длинное тире вместо дефиса, неразрывный пробел, невидимые управляющие символы. В таком случае наберите команду вручную с клавиатуры.
Шаг 2. Проверьте, установлен ли нужный инструмент
Если вы уверены, что команда должна работать, проверьте наличие соответствующей программы в системе. Для Node.js и npm выполните в командной строке:
node -v
npm -v
Обе команды должны вывести номера версий. Если вместо этого снова появляется «не является внутренней или внешней командой», значит Node.js либо не установлен, либо его каталог отсутствует в PATH. В первом случае установите актуальную версию с официального сайта проекта — установщик по умолчанию сам прописывает пути в переменные окружения.
Аналогично проверяются другие инструменты. Для pm2 команда pm2 -v, для pnpm — pnpm -v. Отсутствие отклика означает, что пакет нужно установить через npm командой вида npm install -g pm2, но только после того, как сам npm заработает.
Шаг 3. Проверьте переменную PATH
Если программа установлена, но команда не находится, причина почти наверняка в переменной окружения PATH. Быстро проверить её содержимое можно командой:
echo %PATH%
В выводе должен присутствовать путь к каталогу с исполняемым файлом. Для Node.js это обычно каталог установки программы и папка глобальных пакетов npm в профиле пользователя. Точные пути зависят от того, куда вы ставили программу, поэтому сверьтесь с фактическим расположением файлов на диске.
Чтобы добавить путь вручную, откройте Параметры → Система → О системе → Дополнительные параметры системы → Переменные среды, найдите переменную Path в пользовательском или системном разделе и добавьте нужный каталог через кнопку «Создать».
☑️ Восстановление PATH для Node.js и npm
⚠️ Внимание: изменения переменных окружения не применяются к уже открытым окнам командной строки. После правки PATH обязательно закройте терминал и запустите его заново — иначе проверка покажет старую ошибку, и вы будете искать проблему там, где её уже нет.
Шаг 4. Проверьте текущий каталог и контекст запуска
Иногда команда существует, но вы запускаете её не там. Если pm — это локальный скрипт проекта (например, pm.bat в папке разработчика), то вызывать его нужно либо из этой папки, либо с указанием полного пути, либо через явный префикс .\pm.bat в PowerShell.
Различие между cmd.exe и PowerShell здесь принципиально: PowerShell по соображениям безопасности не запускает исполняемые файлы из текущего каталога без префикса .\. Если инструкция написана для cmd, а вы работаете в PowerShell (или наоборот), поведение может отличаться.
Также проверьте, не требует ли скрипт запуска от имени администратора или из специального окружения — например, из терминала, который открывает сама среда разработки вроде Visual Studio Code с уже настроенными путями.
Как узнать, откуда система пытается запустить команду
Выполните where npm (или where pm2 и т.д.) — команда покажет все найденные в PATH копии исполняемого файла. Если вывод пуст, файл в PATH отсутствует. Если найдено несколько копий, запускается первая по списку — устаревшая версия может конфликтовать с новой.
Шаг 5. Переустановка как крайняя мера
Если пути прописаны верно, а команда по-прежнему не находится, возможно, установка повреждена: файлы удалены антивирусом, прервано обновление или каталог перенесён вручную. Признаком служит ситуация, когда папка из PATH существует, но исполняемого файла в ней нет.
В таком случае корректно удалите программу через «Установка и удаление программ», перезагрузите компьютер и установите её заново с официального источника. Перед переустановкой проверьте, не осталось ли в PATH устаревших записей, указывающих на уже несуществующие каталоги, — их стоит удалить.
⚠️ Внимание: не скачивайте отдельные файлы вродеnpm.cmdилиpm2.exeсо сторонних сайтов, чтобы «добавить» их в систему вручную. Такие файлы могут быть устаревшими, несовместимыми с вашей версией или содержать вредоносный код. Устанавливайте инструменты только штатными установщиками.
Сводная таблица диагностики
Для быстрой навигации по причинам и решениям используйте таблицу ниже.
| Симптом | Вероятная причина | Действие |
|---|---|---|
| Ошибка при первом вводе команды | Опечатка или инструмент не установлен | Сверить команду, проверить установку через node -v |
| Команда работала раньше, теперь нет | Сброшен или изменён PATH | Проверить echo %PATH%, восстановить пути |
| Путь в PATH есть, но ошибка остаётся | Исполняемый файл удалён или повреждён | Проверить наличие файла в каталоге, переустановить |
| В cmd работает, в PowerShell — нет | Особенности запуска из текущего каталога | Использовать префикс .\ или полный путь |
| Команда из чужой инструкции не работает | Инструмент не установлен или версия не совпадает | Установить нужный пакет, сверить требования инструкции |
Частые вопросы
Чем команда pm отличается от npm?
Стандартной команды pm в Windows не существует. npm — это пакетный менеджер, входящий в состав Node.js. Если инструкция требует ввести npm install, а система ругается на pm, проверьте, не потерялась ли первая буква при копировании.
Я добавил путь в PATH, но ошибка не исчезла. Что делать?
Закройте все окна командной строки и откройте новое — переменные окружения считываются только при запуске терминала. Если не помогло, проверьте командой echo %PATH%, действительно ли ваш путь присутствует в списке и не содержит опечаток или лишних пробелов.
Может ли антивирус быть причиной ошибки?
Да, возможная причина — блокировка или удаление исполняемых файлов антивирусом, особенно для инструментов, скачанных не с официальных источников. Проверьте карантин антивируса и журнал событий, а инструменты разработки устанавливайте только с официальных сайтов проектов.
Команда не работает в PowerShell, но работает в cmd. Почему?
PowerShell не запускает исполняемые файлы из текущего каталога без явного указания пути. Добавьте префикс .\ перед именем файла, например .\pm.bat, либо укажите полный путь к файлу.
Нужно ли перезагружать компьютер после изменения PATH?
Полная перезагрузка обычно не требуется — достаточно перезапустить командную строку или терминал. Однако некоторые программы, запущенные до изменения переменных, будут использовать старые значения до собственного перезапуска.