外部コマンド実行時にプログラムの検索が行われるディレクトリ

通常コマンドプロンプトから外部コマンドを実行する場合、プログラムのあるディレクトリに移動するか、パス付でプログラムを実行する必要がありますが、あらかじめプログラムなどを置くディレクトリを登録しておくことで簡単にプログラムを実行することできます。ここでは外部コマンド実行時にプログラムの検索が行われるディレクトリに関して解説します。

(Last modified: )

環境変数PATHについて

コマンドプロンプトから外部コマンドを実行した場合、コマンドプロンプトの現在位置のディレクトリの中に実行しようとしているファイルが存在するかどうかを確認します。もし見つかれなかった場合にはエラーが表示されます。

ただし実行するプログラムをパス付きで指定した場合には他のディレクトリにプログラムがあっても実行できます。

c:\>c:\test\sample.exe

上記の場合であれば C ドライブの中にある test ディレクトリの中に格納された sample.exe ファイルを実行します。

このようにファイルにパスを付けて実行すれば他のディレクトリに格納されている外部コマンドを実行できますが、あらかじめプログラムを保存して置くディレクトリを登録しておき、プログラムを実行する場合にはそのディレクトリの中に実行ファイルが無いかどうかチェックしてもらうことができます。

先ほどの場合で言えば、 c:\test ディレクトリをプログラムを保存しておくディレクトリとして登録しておけば、単に次のように実行することができます。

c:\>sample.exe

プログラムの保存先のディレクトリを設定するには環境変数 PATH を使用します。現在どのディレクトリが設定されているのか確認するには、コマンドプロンプトから path と実行して下さい。

c:\>path

環境変数PATHについて(1)

非常に多くのディレクトリが設定されています。 Windows のデフォルトの値として最初から設定されているディレクトリもありますし、アプリケーションをインストールした時などに自動で追加されたものもあります。

PATH の値には外部コマンド実行時にプログラムを探しに行くディレクトリが順に記述されています。区切り文字はセミコロン(;)です。例えば次のように設定されていたとします。

PATH=c:\test;d:\myapp\bin;

これは外部コマンドを実行時に自働的に探しにいくディレクトリが次の通りということを表しています。

c:\test
d:\myapp\bin

この 2 つのディレクトリに格納されているプログラムなどについては、コマンドプロンプトから実行する場合に、わざわざディレクトリまで移動してから実行する必要はありません。また実行するプログラムにパスを追加して実行する必要もありません。

コマンドプロンプトからメモ帳のアプリケーションを起動する時に、単に notepad.exe と実行するだけでアプリケーションが起動したのは、メモ帳のアプリケーションである notepad.exe が PATH に設定されたディレクトリに格納されているためです。

環境変数PATHについて(2)

このため、コマンドプロンプトの現在位置がどのディレクトリにある場合でも、単に notepad.exe と実行すればプログラムを起動することができます。外部コマンドを実行する場合に意図しないプログラムが実行されてしまった場合には、環境変数 PATH の値を確認しどのディレクトリへプログラムを探しに行っているのかを確認するようにして下さい。

-- --

外部コマンド実行時にプログラムの検索が行われるディレクトリに関して解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。