39

a.com、a.cmd、a.bat、およびa.exeファイル%PATH%がある場合、コマンド「a」だけを呼び出すと、Windowsはどちらを選択しますか?これはM$によって公式にどこかに指定されていますか?

gvim.exe実行可能ファイルを-nでラップしたかったのですが、コマンドラインからも実行ダイアログからもgvim.batが実行されていないようです。

4

3 に答える 3

27

MicrosoftDocsのコマンド検索シーケンスを参照してください

PATHおよびPATHEXT環境変数は、それぞれ検索シーケンスの要素を提供します。PATHは、検索するディレクトリの順序付きリスト " where "であり、PATHEXTは、検索するファイル拡張子( " what ")の順序付きリストです(拡張子の場合)。コマンドラインで明示的に提供されていません)。ただし、PATHを使用する前に、現在のディレクトリが検索されます。

PATHEXT変数のデフォルトは「.COM;.EXE;.BAT;.CMD」です。

于 2009-10-31T05:18:48.017 に答える
20

mjvが提供するMicrosoftTechnetリンクから要約:

Windowsは、PATH内のディレクトリを左から右にステップスルーします(通常のリスト順)。これらのそれぞれで、次のPATHエントリに進む前に、各PATHEXTも左から右にあるファイルを見つけようとします。最初に見つかったファイルが優先されます。

したがって、あなたの場合、.BATが.EXEの前に来るようにPATHEXTを変更する必要があります(または、同じディレクトリにある場合は、オーバーライドする可能性が最も高い.batではなく、常に.exeが最初に検出されます)。 'override' gvim.batのパスは、PATHリストでgvimを見つけることができる場所よりも早く(最も早い?)*(PATHを下る前にそれぞれのすべてのPATHEXTを試行するため)

于 2013-10-26T05:45:24.170 に答える
2

%PATHEXT%をウォークスルーし、それぞれを試行すると思います

于 2009-10-31T05:12:28.183 に答える