Windows 10 e nome do arquivo “node.js”

Windows 10 e nome do arquivo “node.js”

Preciso iniciar o script Node.JS (JavaScript) chamado "Node.js", mas o Windows não me permite fazer isso. Quando estou na mesma pasta e digito o comando node Node.js, meu arquivo é aberto com o editor padrão... Como substituir essa funcionalidade e tornar os comandos primeiro e os arquivos em segundo na fila de inicialização.

Responder1

Este é realmente um comportamento peculiar. Parece um bug relacionado à ordem em que o Windows analisa a linha de comando para execução. Talvez não seja. Não sei o que o programador pretendia.

Solução simples, use .exe após o nó (como em "node.exe node.js") ou renomeie o script para não ser node.js.

Não possocompletamenteexplicar, mas eu entendo o que está acontecendo aqui.

Quando você executa o node node.js, ".js" é listado como um tipo de programa que o Windows pode executar. Na linha de comando, digite echo %PATHEXT%e você encontrará “;.JS” em algum lugar dessa lista.

Quando você executa algo no Windows e não fornece uma extensão, o Windows verifica esta lista PATHEXT para ver o que fazer. Parece que ele ignora a ordem e procura o .EXE por último (bug?) E o diretório local antes de ir para o caminho.

Se o que você está executando estiver na lista, ele procurará a associação no registro para saber o que executar. Nesse caso,.JSestá associado no Windows ao seu editor.

Como posso eu saber? Eu tive o mesmo problema que você ao reproduzir esse bug, facilitando a descoberta.

  • Se eu fiz node node.jsisso, acionei o webstorm com uma linha de comando de "webstorm64.exe node node.js". Webstorm foi meu padrão para arquivos .js. Além disso, observe o extra (estúpido)passou para isso...

  • Ao chamar node.exe node.js, o Windows não tentou pesquisar a associação do arquivo .JS e tudo funcionou perfeitamente.

  • Depois de editar meuPATEXTOlist para não conter .JS, o problema também desapareceu. Você pode editar PATHEXT usando seu ambiente Windows.

Especificamente, se"Como substituir esta funcionalidade e colocar os comandos em primeiro lugar e os arquivos em segundo na fila de lançamento".. Tentei reorganizar a variável PATHEXT sem sucesso. Eu realmente não posso te dizer o que isso está fazendo nos bastidores. Talvez seja porque havia mais de um arquivo chamado "nó" especificado, então ele foi com o arquivo JS? Eu não sei.

informação relacionada