Windows Command Line: 'not recognized as an internal or external command, operable program or batch file.'

When I run cmd in Windows 7 (by typing 'cmd' in Windows Run), the following error shows:

enter image description here

'-p' is not recognized as an internal or external command, operable program or batch file.

I have tried checking PATH in environment variables. Running echo %PATH% gives me the following:

C:\Windows\System32;C:\Windows;C:\Windows\System32\WindowsPowerShell\v1.0;C:\xampp\php;

I have checked all the directories being pointed to by PATH. Everything seems to be in place. What I can not understand is where '-p' is being called. I'm thinking that it has something to do with cmd since it only comes out when I call cmd and not when I run ipconfig or ping, for example.


Solution 1:

It's possible that you have an 'AutoRun' command set in the registry. There's two registry keys, one per-user and one per-computer, that can define commands that are run every time the command processor (cmd.exe) is started. They're actually listed in cmd /?.

Anyway, try running cmd /d and see if that produces the same message. The /d flag means "don't run AutoRun commands", which makes it perfect for testing this.

The registry values are:

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

Check both. By default, neither should exist. You may wish to fix the command strings in yours, or even delete them entirely.

Related: http://blogs.msdn.com/b/oldnewthing/archive/2007/11/21/6447771.aspx


Alternatively, you could have a batch script or similar set up with the name cmd, which is being executed instead of the native cmd. Try the command where cmd to print out a list of cmds in your path, in order of execution. If there are any other than/before the one in C:\Windows\System32\cmd.exe, you may wish to delete them, or remove their path from your PATH environment variable.