'' не распознается как внутренняя или внешняя команда, работающая программа или командный файл
Всякий раз, когда я пытаюсь бежать mycommand.exe
из моих окон cmd.exe
терминал, я получаю эту ошибку:
"mycommand.exe" не распознается как внутренняя или внешняя команда, работающая программа или командный файл "
затем
Я также столкнулся с подобной ошибкой при попытке запустить C:\Program Files\My-App\Mobile.exe
"C:\Program" не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.
3 ответа
Это очень распространенный вопрос на Stackru.
Важной частью здесь является не команда, отображаемая в ошибке, а то, что вместо этого говорит фактическая ошибка.
Быстрый анализ причин возникновения этой ошибки.
cmd.exe
Окно терминала зависит от входных и системных переменных окружения, чтобы выполнять то, что вы запрашиваете. он НЕ знает, где находится все, и также не знает, когда нужно различать команды или имена исполняемых файлов, которые разделены пробелами, такими как пробел и табуляция, или командами с пробелами в качестве переменных-переключателей.
Как это исправить:
Когда Actual Command/ исполняемый файл терпит неудачу
Если у вас есть исполняемый файл, с которого вы пытаетесь запустить cmd.exe
тогда вам нужно сказать cmd.exe
где находится этот файл Есть 2 способа сделать это.
укажите полный путь к файлу.
"C:\My_Files\mycommand.exe"
Добавьте местоположение файла в вашу среду Переменные.
Идти к:
------> Панель управления-> Система-> Расширенные настройки системы-> Переменные среды
в System Variables
Окно, найдите path
и выберите изменить
Теперь просто добавьте ваш путь к концу строки, разделяя их точкой с запятой ;
как:
;C:\My_Files\
Сохраните изменения и выйдите. Вы должны убедиться, что ЛЮБОЙ cmd.exe
окна, которые вы открыли, затем закрываются и снова открываются, чтобы позволить ему повторно импортировать переменные среды. Теперь вы сможете запускать mycommand.exe с любого пути, в пределах cmd.exe
поскольку окружающая среда осознает путь к ней.
когда C:\Program
или подобное не удается
Это очень простая ошибка. Каждая строка после пробела рассматривается как отдельная команда в cmd.exe
терминал, вы просто должны заключить весь путь в двойные кавычки, чтобы cmd.exe
видеть его как одну строку, а не как отдельные команды.
Так выполнить C:\Program Files\My-App\Mobile.exe
просто запустите как:
"C:\Program Files\My-App\Mobile.exe"
Если вы хотите запустить исполняемый файл из командной строки (cmd.exe) или командного файла, он будет:
- Найдите в текущем рабочем каталоге исполняемый файл.
- Поиск всех мест, указанных в
%PATH%
переменная окружения для исполняемого файла.
Если файл не найден ни в одном из этих вариантов, вам нужно будет либо:
- Укажите местоположение вашего исполняемого файла.
- Измените рабочий каталог на тот, который содержит исполняемый файл.
- Добавить местоположение в
%PATH%
добавив его (рекомендуется только с особой осторожностью).
Вы можете увидеть, какие места указаны в %PATH%
из командной строки, Echo %Path%
,
Из-за вашей ошибки мы можем предположить, что Mobile.exe
не находится в текущем каталоге или в месте, указанном в %Path%
переменная, так что вам нужно использовать 1.
, 2.
или же 3.
,
Примеры для 1.
C:\directory_path_without_spaces\My-App\Mobile.exe
или же:
"C:\directory path with spaces\My-App\Mobile.exe"
В качестве альтернативы вы можете попробовать:
Start C:\directory_path_without_spaces\My-App\Mobile.exe
или же
Start "" "C:\directory path with spaces\My-App\Mobile.exe"
куда ""
это пустой заголовок (вы можете добавить строку между этими двойными кавычками).
Примеры для 2.
CD /D C:\directory_path_without_spaces\My-App
Mobile.exe
или же
CD /D "C:\directory path with spaces\My-App"
Mobile.exe
Вы также можете использовать /D
вариант с Start
изменить рабочий каталог для исполняемого файла, запускаемого командой start
Start /D C:\directory_path_without_spaces\My-App Mobile.exe
или же
Start "" /D "C:\directory path with spaces\My-App" Mobile.exe
когда у тебя есть эта проблема
- поиск переменных среды
- нажмите на переменные среды
- В разделе «Системные переменные» вы ищете PATH и нажимаете «Изменить».