Linha de comandos do Windows XP: Tem que digitar o nome completo do executável para executar o programa

2

Digamos que eu tenha um programa chamado program.exe e eu queira executá-lo a partir da linha de comando. Suponha ainda que eu esteja no prompt de comando e no mesmo diretório que o program.exe

Por algum motivo, não consigo executar o programa digitando:

program

Em vez disso, tenho que digitar:

program.exe

Em seguida, o programa será executado.

Não sei ao certo o que eu fiz que fez com que ele se comportasse dessa maneira. Até mesmo o utilitário ping simples também requer que eu digite ping.exe.

Estranhamente, eu tentei digitar "copiar" e ainda o reconhece. Ou isso não é um executável?

    
por sivabudh 11.02.2010 / 22:45

2 respostas

4

Copiar é um comando embutido, de fato.

Suponho que você esteja familiarizado com a edição do seu PATH, no entanto, no menu de variáveis de environment, há outro chamado "PATHEXT", que contém tipos de arquivos para executar sem a extensão (usei para adicionar ".py" scripts python). Verifique se .exe está lá. Se não, nunca me deparei com isso antes!

    
por 11.02.2010 / 22:56
2
C:\>set pathext
PATHEXT=.COM;.EXE;.CMD;.BAT;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PCS1

Quando você executar program , o interpretador de comandos procurará program , program.com , program.exe , etc. Se você perdeu .exe dessa lista, isso explicaria o que você está vendo .

copy é um interno do interpretador de comandos, e não um .exe ou .com separado. Em outras palavras, cmd.exe reconhece especialmente essa palavra e manipula a própria cópia, em vez de chamar outro programa. (Ao contrário de xcopy.exe , que não é um comando interno).

    
por 11.02.2010 / 22:58