Windows 10では、現在のフォルダーにtruffle.js
というファイルがあります。私は自分のパスのどこかにあるtruffle
プログラムを呼び出すことを期待して、cmdウィンドウにtruffle
を書きます。
代わりに、truffle.js
が私のお気に入りのIDEで開かれます(.js
ファイルはそのIDEに関連付けられています)。私はこの振る舞いは実行ファイル.bat
、.com
そして.exe
に対してのみこのようなものであると思いました。どうして.js
ファイルに起こるのですか?
注:その後、自分のパスにtruffle
がまったくインストールされていないことを発見しましたが、私の疑問は残ります。なぜWindowsが実行不能ファイルに指定されていない拡張子を完成させるのですか?
トリュフをインストールしてcmdを再起動した後でも、ファイルtruffle.js
を含むフォルダで本物のトリュフを実行することはできません。
デフォルトで%PATHEXT%
は.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
に設定されているからです。 .js
が含まれていることに注意してください。
つまり、名前を入力すると、CMDは現在のフォルダ内で、これらの拡張子が付いたファイルをこの順に探します。その後初めて、%PATH%
の内容が考慮されます。この動作は変更できません。ただし、他の環境変数と同様に、%PATHEXT%
を変更することもできます。
WHERE
コマンドを使用して、どのパスが開かれるのか(例:where truffle
)を確認できます。これにより、CMDと同じ方法で%PATH%と%PATHEXT%の両方が自動的に検索されます。