O que faria com que uma extensão EXE fosse obrigatória na linha de comando e como ela pode ser resolvida no shell atual?

2

O que faria com que uma extensão EXE fosse obrigatória na linha de comando e como ela pode ser resolvida no shell atual?

Eu tive um caminho longo. > 2048 caracteres e instalei um programa, nodejs, que foi adicionado a esse caminho. E então as coisas ficaram um pouco malucas. Eu tive um problema que algumas pessoas parecem chegar em algum momento quando o caminho é > 2048 char. A maior parte do meu caminho foi removido. (Eu ainda tenho alguns antigos cmd shells com o meu caminho, então isso não é um grande problema, então eu salvei meu caminho antigo em um arquivo) E a variável de ambiente windir tem (acho que configurada para nada), no registro. E eu não conseguia nem abrir a janela de variáveis de ambiente (este é um sintoma que as pessoas podem obter quando o seu caminho é > 2048 char e perdem a sua variável windir). Então usei o setx para criar windir=c:\windows e abri a janela de variáveis de ambiente e fixei meu PATH para o que era. E agora cmd prompt janelas que eu abro estão bem.

Mas eu ainda tenho algumas janelas de prompt do cmd antigas antes de consertá-lo, e eu entendo que o caminho está encurtado nelas, e eu entendo que não há nenhum conjunto de variáveis windir, mas eu ainda vejo um resultado bizarro nelas explicar. E que eu gostaria de poder consertar dentro daquelas janelas cmd.

Parece que preciso colocar o EXE após um executável para executá-lo.

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>

e

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]

O engraçado é que eu acho que o que resolveu para futuros prompts de cmd foi configurar o windir permanentemente, ou seja, com setx (então (fui para a janela de variáveis do ambiente e consertei o caminho).

Eu poderia consertar o caminho dentro de uma sessão cmd quebrada, eu posso até mesmo consertar o windir naquela sessão cmd, eu sei que nenhum dos dois deve ajudar, mas tornar obrigatório colocar o EXE no final dos nomes de arquivo. Então eu não vejo a causa ... ou como consertar isso para uma sessão cmd em particular.

As novas janelas do cmd estão bem .. Mas para entender o que está acontecendo, quero poder corrigi-lo de dentro de uma sessão cmd interrompida. E se não, então eu gostaria de saber por que não pode ser corrigido dentro dele.

Adicionado

Relevante para o post de Dmitry

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

De fato, vejo que o .EXE não está listado e é um pouco estranho que o literal% PATHEXT% esteja listado nele. Parece quase infinitamente recursivo (se o DOS lesse a recursão / recursão, o que não aconteceria)!

    
por barlop 16.09.2015 / 15:34

1 resposta

5

Você verificou a variável de ambiente PATHEXT ? Ele lista as extensões, consideradas executáveis. O meu é assim:

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

BTW, há um editor de ambiente agradável: Editor de ambiente rápido

    
por 16.09.2015 / 15:46