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.js
isso, 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)nó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.