外部コマンド実行時にプログラムの検索が行われるディレクトリ
通常コマンドプロンプトから外部コマンドを実行する場合、プログラムのあるディレクトリに移動するか、パス付でプログラムを実行する必要がありますが、あらかじめプログラムなどを置くディレクトリを登録しておくことで簡単にプログラムを実行することできます。ここでは外部コマンド実行時にプログラムの検索が行われるディレクトリに関して解説します。
(Last modified: )
目次
環境変数PATHについて
コマンドプロンプトから外部コマンドを実行した場合、コマンドプロンプトの現在位置のディレクトリの中に実行しようとしているファイルが存在するかどうかを確認します。もし見つかれなかった場合にはエラーが表示されます。
ただし実行するプログラムをパス付きで指定した場合には他のディレクトリにプログラムがあっても実行できます。
c:\>c:\test\sample.exe
上記の場合であればCドライブの中にある「test」ディレクトリの中に格納された「sample.exe」ファイルを実行します。
このようにファイルにパスを付けて実行すれば他のディレクトリに格納されている外部コマンドを実行できますが、あらかじめプログラムを保存して置くディレクトリを登録しておき、プログラムを実行する場合にはそのディレクトリの中に実行ファイルが無いかどうかチェックしてもらうことができます。
先ほどの場合で言えば、「c:\test」ディレクトリをプログラムを保存しておくディレクトリとして登録しておけば、単に次のように実行することができます。
c:\>sample.exe
プログラムの保存先のディレクトリは環境変数PATHに設定されています。現在どのディレクトリが設定されているのか確認するには、コマンドプロンプトから「path」と実行して下さい。
c:\>path
非常に多くのディレクトリが設定されています。最初から設定されているディレクトリもありますし、アプリケーションをインストールした時に、そのアプリケーションが使用するプログラムの保存先を自動で追加したものもあります。
PATHの値には外部コマンド実行時にプログラムを探しに行くディレクトリが順に記述されています。区切り文字はセミコロン(;)です。例えば次のように設定されていたとします。
PATH=c:\test;d:\myapp\bin;
これは外部コマンドを実行時に自働的に探しにいくディレクトリが次の通りということを表しています。
c:\test
d:\myapp\bin
この3つのディレクトリに格納されているプログラムなどについては、コマンドプロンプトから実行する場合に、わざわざディレクトリまで移動してから実行する必要はありません。また実行するプログラムにパスを追加して実行する必要もありません。
コマンドプロンプトからメモ帳のアプリケーションを起動する時に、単に「notepad.exe」と実行するだけでアプリケーションが起動したのは、メモ帳のアプリケーションである「notepad.exe」がPATHに設定されたディレクトリに格納されているためです。
このため、コマンドプロンプトの現在位置がどのディレクトリにある場合でも、単に「notepad」と実行すればプログラムを起動することができます。外部コマンドを実行する場合に意図しないプログラムが実行されてしまった場合には、環境変数PATHの値を確認しどのディレクトリへプログラムを探しに行っているのかを確認するようにして下さい。
( Written by Tatsuo Ikura )

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