2013-03-26 14:04:23 +0000 2013-03-26 14:04:23 +0000
10
10

Linha de comando do Windows: 'não reconhecido como um comando interno ou externo, programa operável ou ficheiro de lote'.

Quando corro cmd no Windows 7 (digitando 'cmd' no Windows Run), o seguinte erro aparece:

‘-p’ não é reconhecido como um comando interno ou externo, programa operável ou ficheiro de lote.

Tentei verificar o PATH em variáveis de ambiente. Executando echo %PATH%& dá-me o seguinte:

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

Verifiquei todos os directórios apontados pelo PATH. Tudo parece estar no seu devido lugar. O que não consigo entender é onde '-p' está a ser chamado. Estou a pensar que tem algo a ver com cmd já que só sai quando chamo cmd e não quando corro ipconfig ou ping, por exemplo.

Respostas (1)

12
12
12
2013-03-26 14:13:28 +0000

É possível que tenha um comando ‘AutoRun’ definido no registo. Há duas chaves de registo, uma por utilizador e uma por computador, que podem definir comandos que são executados sempre que o processador de comandos (cmd.exe) é iniciado. Estão na realidade listados em cmd /?.

De qualquer modo, tente executar cmd /d e veja se isso produz a mesma mensagem. A bandeira /d significa “não executar comandos AutoRun”, o que a torna perfeita para testar isto.

Os valores de registo são:

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

Verificar ambos. Por defeito, nenhum dos dois deve existir. Pode desejar fixar as cordas de comando na sua, ou mesmo eliminá-las por completo.

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


Em alternativa, poderá ter um script de lote ou similar configurado com o nome cmd, que está a ser executado em vez do nativo cmd. Experimente o comando where cmd para imprimir uma lista de cmds no seu caminho, por ordem de execução. Se houver qualquer outro que não o C:\Windows\System32\cmd.exe& antes do 0x6&, poderá querer apagá-los, ou remover o seu caminho da sua variável de ambiente PATH.