Windows 10 と「node.js」ファイル名

Windows 10 と「node.js」ファイル名

「Node.js」という名前の Node.JS (JavaScript) スクリプトを起動する必要がありますが、Windows では起動できません。同じフォルダーでコマンドを入力すると、node Node.jsファイルはデフォルトのエディターで開かれます...この機能をオーバーライドして、起動キューでコマンドを最初にし、ファイルを 2 番目にする方法を教えてください。

答え1

これは確かに奇妙な動作です。ウィンドウが実行のためにコマンド ラインを解析する順序に関係するバグのように見えます。そうではないかもしれません... プログラマーの意図はわかりません。

簡単な解決策としては、node の後に .exe を使用するか (「node.exe node.js」のように)、スクリプトの名前を node.js 以外に変更します。

私はできません完全に説明は必要ですが、ここで何が起こっているのかは理解しています。

node node.js を実行すると、Windows で実行できるプログラムの種類として「.js」がリストされます。コマンド ラインから入力するとecho %PATHEXT%、そのリストのどこかに「;.JS」が見つかります。

Windows で何かを実行するときに拡張子を指定しないと、Windows はこの PATHEXT リストをチェックして何をすべきかを判断します。順序は無視され、パスに移動する前に .EXE を最後に (バグ?) 探し、ローカル ディレクトリを探すようです。

実行しようとしているものがリストにある場合、レジストリ内の関連付けを参照して何を実行するかを調べます。この場合、.JSウィンドウ内でエディターに関連付けられます。

どうすればわかりますか? 私もあなたと同じ問題を抱えていましたが、このバグを再現できたので、簡単に理解できました。

  • 私がそうした場合、node node.jsコマンドライン「webstorm64.exe node node.js」でWebstormが起動しました。Webstormは.jsファイルのデフォルトでした。また、余分な(愚かな)ノード渡されました...

  • を呼び出すときにnode.exe node.js、Windows は .JS ファイルのファイル関連付けを検索しようとせず、すべて正常に動作しました。

  • 編集した後パステキストリストに .JS が含まれないようにすると、問題も解消されました。Windows 環境を使用して PATHEXT を編集できます。

具体的には、「この機能をオーバーライドして、起動キューでコマンドを最初にし、ファイルを 2 番目にする方法」.. PATHEXT 変数の並べ替えを試みましたが、効果はありませんでした。内部で何が行われているのかはわかりません。おそらく、「node」という名前のファイルが複数指定されていたため、代わりに JS ファイルが使用されたのでしょうか?? わかりません。

関連情報