Línea de comandos de Windows XP: debe escribir el nombre completo del ejecutable para ejecutar el programa

2

Digamos que tengo un programa llamado program.exe, y quiero ejecutarlo desde la línea de comandos. Supongamos además que estoy en el símbolo del sistema y en el mismo directorio que program.exe.

Por alguna razón, no puedo ejecutar el programa escribiendo:

program

Más bien, tengo que escribir:

program.exe

Entonces el programa se ejecutará.

No estoy seguro de lo que hice que hizo que se comportara de esta manera. Incluso la sencilla utilidad de ping también requiere que escriba ping.exe.

Curiosamente, traté de escribir "copiar" y todavía lo reconoce. ¿O no es eso un ejecutable?

sivabudh
fuente

Respuestas:

4

Copiar es un comando incorporado, de hecho.

Supongo que está familiarizado con la edición de su PATH; sin embargo, en el menú de variables de entorno, hay otro llamado "PATHEXT", que contiene tipos de archivo para ejecutar sin la extensión (lo usé para agregar ".py", para ejecutar scripts de Python) . Compruebe para asegurarse de que .exe está allí. Si no, nunca he encontrado esto antes!

Phoshi
fuente
Perfecto. Gracias por la respuesta.
sivabudh
2
C:\>set pathext
PATHEXT=.COM;.EXE;.CMD;.BAT;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PCS1

Cuando corres program, el intérprete de comandos buscará program, program.com, program.exe, etc. si has perdido .exe De esta lista, eso explicaría lo que estás viendo.

copy es una función incorporada al intérprete de comandos, y no una función separada .exe o .com. En otras palabras, cmd.exe reconoce especialmente esa palabra y maneja la copia en sí misma, en lugar de llamar a otro programa. (Opuesto a xcopy.exe, que no es un comando incorporado.)

ephemient
fuente
Es un poco extraño copy está incorporado y help no es.
grawity