4 votos

La aplicación de línea de comandos 'no se reconoce como comando interno o externo'.

Hace unos años hice un par de aplicaciones de línea de comandos de consola que en su momento funcionaron sin problemas. Las colocaba en el directorio window/system32 y podía utilizarlas desde el prompt de la consola desde cualquier parte de mi sistema (Windows XP en ese momento).

Ahora estoy usando Windows 7 64bit y esto ya no funciona. He intentado colocar mis pequeñas aplicaciones de consola en system32 , syswow64 , Windows en root de mi unidad c:, pero Windows sigue dándome la misma respuesta "'check' no se reconoce como un comando interno o externo, programa operable o archivo por lotes".

Pero si me encuentro en el mismo directorio que el programa, funciona como es debido. Estoy asumiendo que hay un problema de aplicación de 32bit/64bit o un problema de seguridad interna del sistema operativo.

¿Puede alguien indicarme la dirección correcta? ¿Tengo que crear un directorio en "Archivos de programa(x86)" y añadir ese nuevo directorio al entorno PATH?


Nota adicional: Este es un programa que he creado. No es un archivo por lotes. El programa funciona como debería cuando estás en el mismo directorio que el programa mientras estás en una ventana de la consola.

1voto

Tobias Plutat Puntos 3176

La forma más fácil, sin embargo, sería utilizar la variable de entorno PATH de Windows. Garantiza al 100% la misma funcionalidad y no implica que pongas nada en el directorio de Windows. Hay otras preguntas dirigidas a lo mismo, las respuestas en este hilo debería ponerte a la altura de eso.

1voto

wild1180 Puntos 6

La variable ambiental para PATH no contenía el directorio de Windows ni ninguno de los directorios del sistema. Añadí las tres rutas a la variable PATH y ahora todo funciona como estaba previsto.

Gracias a todos los que han respondido con ideas, sugerencias y preguntas.

1voto

Jan Puntos 2020

.EXE puede ser eliminado de PATHEXT en la variable de entorno.

Si este es el caso, añada .EXE a PATHEXT .

0voto

Harold Puntos 21

No dices si estás ejecutando el programa desde un símbolo del sistema de 32 bits o desde uno de 64 bits. El de 32 bits buscará en el directorio SysWOW64 (lo verá como System32), y el de 64 bits buscará en el directorio System32. (Esto debería ser un comentario, pero aún no tengo suficiente rep para comentarlo).

Si no está claro, el de 64 bits es C:\Windows\System32\cmd.exe el de 32 bits es C:\Windows\SysWOW64\cmd.exe. Si alguna vez no estás seguro de cuál es el nivel de bits de un prompt abierto, simplemente ejecuta el comando 'set' y mira el valor de la variable de entorno 'ProgramFiles'. El prompt de 64 bits debería mostrarlo como C:\Program Archivos, el de 32 bits como C:\Program Archivos (x86).

0voto

Scott Puntos 222

En cuanto a la parte en la que te sale "no se reconoce como un comando interno o externo", echa un vistazo a este artículo:

No se puede hacer ping obteniendo 'ping no es reconocido como un comando interno o externo'

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: