¿Qué causaría que una extensión EXE sea obligatoria en la línea de comando y cómo se puede resolver en el shell actual?

¿Qué causaría que una extensión EXE sea obligatoria en la línea de comando y cómo se puede resolver en el shell actual?

¿Qué causaría que una extensión EXE sea obligatoria en la línea de comando y cómo se puede resolver en el shell actual?

Tuve un camino que fue largo. > 2048 caracteres, e instalé un programa, nodejs que agregó a esa ruta. Y luego las cosas se pusieron un poco locas. Tuve un problema que algunas personas parecen tener en algún momento cuando su ruta es > 2048 caracteres. La mayor parte de mi camino fue eliminada. (Todavía tengo algunos shells cmd antiguos con mi ruta, así que no es un gran problema, así que guardé mi ruta anterior en un archivo) Y la variable de entorno windir apareció (creo que configurada en nada) en el registro. Y ni siquiera pude abrir la ventana de variables de entorno (este es un síntoma que las personas pueden tener cuando su ruta es > 2048 caracteres y pierden su variable windir). Entonces usé setx para crear windir=c:\windows, abrí la ventana de variables de entorno y arreglé mi RUTA como era. Y ahora las ventanas de comando cmd que abro están bien.

Pero todavía tengo algunas ventanas de aviso de cmd anteriores a que las arreglara, y entiendo que la ruta se acorta en ellas, y entiendo que no hay una variable windir configurada, pero todavía veo un resultado extraño en ellas que no puedo explicar. Y eso me gustaría poder solucionarlo desde esas ventanas cmd.

Parece que necesito poner el EXE después de un ejecutable para poder ejecutarlo.

C:\crp>path
PATH=C:\Ruby21\bin;C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\;C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\;C:\Program Files (x86)\Nmap;C:\Program Files (x86)\smartmontools\bin;C:\ProgramData\chocolatey\bin;C:\Users\user\AppData
\Roaming\npm

C:\crp>cd \windows\system32

C:\Windows\System32>ping
'ping' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\System32>ping.exe

Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
......


C:\Windows\System32>set path=

C:\Windows\System32>ping.exe

Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
.....

C:\Windows\System32>ping
'ping' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\System32>

y

C:\Windows\System32>ping
'ping' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\System32>set windir=c:\windows

C:\Windows\System32>echo %windir%
c:\windows

C:\Windows\System32>ping
'ping' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\System32>ping.exe

Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]

Lo curioso es que creo que lo que lo resolvió para futuras indicaciones de cmd fue configurar windir de forma permanente, es decir, con setx (luego (fue a la ventana de variables de entorno y arregló la ruta).

Podría arreglar la ruta dentro de una sesión de cmd rota, incluso puedo arreglar windir en esa sesión de cmd, sé que no hacer ninguna de las dos cosas debería ayudar, pero hace que sea obligatorio poner EXE al final de los nombres de archivos. Así que no veo la causa... ni cómo solucionarlo para una sesión de cmd en particular.

Las nuevas ventanas de cmd están bien... Pero para entender qué está pasando, quiero poder solucionarlo desde una sesión de cmd fallida. Y si no, me gustaría saber por qué no se puede solucionar dentro de él.

Agregado

Relevante para la publicación de Dmitry

C:\Windows\System32>echo %PATHEXT%
%PATHEXT%;.RB;.RBW

De hecho, veo que .EXE no aparece en la lista, y es un poco extraño que %PATHEXT% literal aparezca allí. Parece casi infinitamente recursivo (¡si DOS siquiera manejara la recursividad / recursividad allí, lo cual no haría)!

Respuesta1

¿Revisaste PATHEXTla variable de entorno? Enumera extensiones, consideradas ejecutables. El mío es así:

PATHEXT=.COM;.EXE;.BAT;.CMD;.LNK;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.AU3

Por cierto, hay un bonito editor de entorno:Editor de entorno rápido

información relacionada