私は次の実験を試みました。
開始する前に、cmdからPATH変数をチェックしました。この変数の値は次のとおりです。
Path=C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\ProgramData\Lenovo\ReadyApps;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Skype\Phone\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Calibre2\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;
最初は、cmdはPATH変数に含まれるディレクトリでのみ実行可能ファイルを検索すると考えたため、winword.exe(Microsoft Word)というアプリケーションをランダムに選択し、コマンドラインから起動しようとしました。
start winword
しかし、驚いたことに、プログラムが起動します!私が驚いた理由は、「winword」というexeファイルのPATH変数内のすべてのディレクトリを検索したが、検索がすべて空になったためです!
したがって、コマンドプロンプトは、実行可能ファイルを探すためにPATH変数で指定された場所以外の場所を検索する必要があると結論付けました。
したがって、明らかに、次にしたことは、「winword」実行可能ファイルが置かれている正確な場所を探すことでした。winword.exeは次の場所にあることがわかります。
C:\Program Files\Microsoft Office 15\root\office15
したがって、「開始」コマンドを実行するときにCMDがProgramFilesとProgramFiles(x86)(およびそれらのすべてのサブディレクトリ)を自動的に調べる可能性があるという考えを教えてくれますか?そのため、コンピューターにインストールされている別のアプリケーションAudacityを、exeファイルを次の場所に起動しようとしました。
C:\Program Files (x86)\Audacity
繰り返しになりますが、驚いたことに、Audacityは次のように入力しても起動に失敗しました。
start audacity
コマンドラインで。
次に、audacity.exeを含むディレクトリをPATHに追加しました。
set path=%path%;C:\Program Files (x86)\Audacity
その後、私は再びaudacityを起動しようとしました:
start audacity
さて、驚くことではありませんが、Audacityが起動しました。
私が知りたいのは、コマンドプロンプトが正確に実行可能ファイルを探す場所ですか?winword.exeを含むディレクトリがPATHの一部ではない場合でもwinword.exeが起動するのはなぜですか?しかし、audacity.exeでも同じことは当てはまりませんか?
他のアプリケーションも試しました。startコマンドを使用すると、ChromeとFirefoxが動作します。
更新: Windowsバージョン6.3.9600(Windows 8.1)を実行しています