Línea de comandos de Windows: "no se reconoce como un comando interno o externo, programa operativo o archivo por lotes".

10

Cuando ejecuto cmd en Windows 7 (escribiendo 'cmd'Windows Run), aparece el siguiente error:

ingrese la descripción de la imagen aquí

'-p' no se reconoce como un comando interno o externo, programa operativo o archivo por lotes.

He intentado verificar PATH en variables de entorno. Correr echo %PATH%me da lo siguiente:

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

He revisado todos los directorios a los que apunta PATH. Todo parece estar en su lugar. Lo que no puedo entender es dónde '-p'se llama. Estoy pensando que tiene algo que ver, cmdya que solo sale cuando llamo cmdy no cuando corro ipconfigo ping, por ejemplo.

nmenego
fuente
¿Cómo ejecutas 'cmd'? ¿Ejecutas un acceso directo o escribes 'cmd' en el cuadro de búsqueda?
Simon
@ Simon, lo ejecuto usando Windows Run. Actualicé la pregunta.
nmenego
revise cada uno de los directorios enumerados allí en su RUTA, para cmd. * - tal vez eso proporcionará una pista
StevenV
Este tipo: stackoverflow.com/questions/10077689/… tenía un espacio antes de a; en la declaración de ruta.
edelwater
@edelwater Caso ligeramente diferente allí; ese tipo estaba tratando de ejecutar un programa llamado R, que debería haber estado en su camino pero no lo estaba, debido a ese error. Este caso es del procesador de comando ( cmd) mismo que genera el error al inicio, y el inicio fue exitoso. Aún así, el problema que lo causó podría ser el mismo; No descontaré eso ...
Bob

Respuestas:

12

Es posible que tenga un comando 'AutoRun' establecido en el registro. Hay dos claves de registro, una por usuario y una por computadora, que pueden definir comandos que se ejecutan cada vez que cmd.exese inicia el procesador de comandos ( ). En realidad están listados en cmd /?.

De todos modos, intente ejecutar cmd /dy ver si eso produce el mismo mensaje. El /dindicador significa "no ejecutar comandos de ejecución automática", lo que lo hace perfecto para probar esto.

Los valores del registro son:

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

Verifica ambos. Por defecto, ninguno debería existir. Es posible que desee corregir las cadenas de comandos en la suya, o incluso eliminarlas por completo.

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


Alternativamente, puede tener un script por lotes o similar configurado con el nombre cmd, que se está ejecutando en lugar del nativo cmd. Pruebe el comando where cmdpara imprimir una lista de cmds en su ruta, en orden de ejecución. Si hay otro que no sea / antes del que está dentro C:\Windows\System32\cmd.exe, es posible que desee eliminarlos o eliminar su ruta de la variable de entorno PATH.

Beto
fuente
Intenté ejecutar cmd /dy, como esperaba, el problema desapareció. Luego verifiqué el registro y encontré HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRunalgunas cadenas de comandos con respecto a ANSICON. No pude eliminarlo la última vez que lo eliminé. ¡Simplemente quité la llave! Esta es una respuesta brillante!
nmenego