Por que um arquivo é aberto quando escrevo seu nome, sem extensões, na linha de comando?

41

No Windows 10, tenho um arquivo chamado truffle.js na minha pasta atual. Eu escrevo truffle na janela cmd, esperando invocar o programa truffle que reside em outro lugar no meu caminho.

Em vez disso, truffle.js é aberto no meu IDE favorito ( .js arquivos estão associados a esse IDE). Eu pensei que esse comportamento é apenas assim para arquivos executáveis, .bat , .com e .exe . Por que isso acontece para um arquivo .js ?

Nota: Descobri subseqüentemente que não tenho truffle instalado em meu caminho, mas minha pergunta permanece: por que o Windows está completando a extensão que eu não especifiquei em um arquivo não executável?

Mesmo depois de instalar a trufa e reiniciar o cmd, não consigo executar a trufa real em uma pasta que contenha um arquivo truffle.js .

    
por ripper234 11.06.2018 / 15:34

1 resposta

75

Porque %PATHEXT% está definido como .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC por padrão. Observe como ele contém .js .

Isso significa que, se você digitar um nome, o CMD procurará arquivos com essas extensões anexadas, nessa ordem, na pasta atual. Somente depois disso, será considerado o que está em %PATH% . Esse comportamento não pode ser alterado. Você pode modificar %PATHEXT% , como qualquer outra variável de ambiente.

    
por 11.06.2018 / 16:02