「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 ファイルが使用されたのでしょうか?? わかりません。