Командная строка Windows: «не распознается как внутренняя или внешняя команда, работающая программа или командный файл».

10

Когда я запускаю cmd в Windows 7 (набрав 'cmd'в Windows Run), появляется следующая ошибка:

введите описание изображения здесь

'-p' не распознается как внутренняя или внешняя команда, работающая программа или командный файл.

Я попытался проверить PATH в переменных среды. Бег echo %PATH%дает мне следующее:

C: \ Windows \ System32, C: \ Windows, C: \ Windows \ System32 \ WindowsPowerShell \ v1.0; C: \ XAMPP \ PHP;

Я проверил все каталоги, на которые указывает PATH. Кажется, все на месте. Что я не могу понять, так '-p'это то, что называется. Я думаю, что это как-то связано с тем, cmdчто выходит только когда я звоню, cmdа не когда я бегу ipconfigили ping, например.

nmenego
источник
Как вы запускаете «CMD»? Вы запускаете ярлык или вводите «cmd» в поле поиска?
Саймон
@ Симон, я запускаю его с помощью Windows Run. Я обновил вопрос.
nmenego
проверьте каждый из каталогов, перечисленных там в вашем PATH, для cmd. * - возможно, это даст подсказку
StevenV
Этот парень: stackoverflow.com/questions/10077689/… имел пробел перед a; в заявлении пути.
edelwater
@edelwater Немного другой случай там; этот парень пытался запустить программу под названием R, которая должна была быть на его пути, но не была, из-за этой ошибки. В этом случае сам командный процессор ( cmd) выдает ошибку при запуске - и запуск прошел успешно. Тем не менее, проблема, которая вызвала это, могла быть той же самой; Я не буду сбрасывать со счетов это ...
Боб

Ответы:

12

Возможно, в реестре установлена ​​команда «Автозапуск». Существует два раздела реестра, один для пользователя и один для компьютера, которые могут определять команды, запускаемые при каждом запуске процессора команд ( cmd.exe). Они на самом деле перечислены в cmd /?.

В любом случае, попробуйте запустить cmd /dи посмотреть, если это выдает то же сообщение. В /dозначает флаг «не запускать команды автозапуска», что делает его идеальным для тестирования это.

Значения реестра:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

Проверьте оба. По умолчанию ни один не должен существовать. Вы можете исправить командные строки в вашей или даже полностью удалить их.

Связанный: http://blogs.msdn.com/b/oldnewthing/archive/2007/11/21/6447771.aspx


В качестве альтернативы вы можете создать пакетный сценарий или аналогичный файл с именем cmd, которое выполняется вместо собственного cmd. Попробуйте команду where cmdраспечатать список cmds на вашем пути, в порядке выполнения. Если есть что-то кроме / до того, что находится внутри C:\Windows\System32\cmd.exe, вы можете удалить их или удалить их путь из переменной среды PATH.

боб
источник
Я попытался выполнить, cmd /dи, как и ожидалось, проблема исчезла. Затем я проверил реестр и нашел HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRunнесколько командных строк в отношении ANSICON. Я не смог удалить его в последний раз. Я просто удалил ключ! Это блестящий ответ!
nenego