Windowsの「PATHを通す」とは、環境変数PATHにプログラムのフォルダパス(配置場所)を設定してプログラム名だけで実行できるようにすることです。
よくあるのが、プログラム言語をインストールしたときです。
Java・Ruby・Pythonなどのプログラム言語をインストールした後は、PATHを通してjava・ruby・pythonコマンドを実行できるようにします。
(インストーラーで自動設定される場合もあります。)
ということで、WindowsでPATHを通す設定手順と仕組みを解説します。
また、PATHに設定されたプログラムの場所をwhereコマンドで確認する方法、便利な使い方を紹介します。
なお、今回のバージョンは以下の通りです。
- Windows 10 Pro(64bit) 1809
WindowsのPATHを通す手順と確認方法
では、PATHを通してみます。
ここではプログラム言語のJava(JDK)をインストールした後、PATHを通してjavaコマンド(java.exe)が使えるようにします。
- コントロールパネル ⇒ システム ⇒ システムの詳細設定 ⇒ 環境変数
を開き、システム環境変数Pathを編集してJavaをインストールしたフォルダのbinフォルダのパス「C:\Program Files\Java\jdk1.8.0_231\bin」を追加します。
プログラムのバージョンアップ・切替に備えて、環境変数JAVA_HOMEを追加し、
- JAVA_HOME
「C:\Program Files\Java\jdk1.8.0_231」のシステム環境変数を追加 - Path
「%JAVA_HOME%\bin」を追加
としてもOKです。
コマンドプロンプトで以下のコマンドを入力してバージョン情報が出れば、PATHの設定は問題なしです。
【PATH設定前】
> java -version
'java' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
【PATH設定後】
> java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
環境変数Pathは上記の画面で確認できますが、以下のようにコマンドでも確認可能です。
> path
PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;…
> echo %path%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;…
PATHの仕組みと動作
Windowsでコマンド実行時は、PATHで指定されているフォルダを先頭から順番に該当するコマンドを探します。
C:\WINDOWS\system32; C:\WINDOWS; C:\WINDOWS\System32\Wbem; C:\WINDOWS\System32\WindowsPowerShell\v1.0\; …
ですので、
- C:\Program Files\Java\jdk1.7.0_80\bin
- C:\Program Files\Java\jdk1.8.0_231\bin
という順番でPATHに設定していた場合、javaコマンド(java.exe)で実行されるのは1つ目のJDK7の方になります。
プログラム名が重複する場合、順序が先のものが実行されるので注意が必要です。
whereコマンドでプログラムの場所を確認
whereコマンドを使用すれば、現在のフォルダ・環境変数Pathで指定されたフォルダからプログラムファイルの場所を検索できます。
例えば、先ほどの「java」やメモ帳の「notepad」で検索すると、
> where java
C:\Program Files\Java\jdk1.8.0_231\bin\java.exe
> where notepad
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
と出力されて、実行ファイル(exe)の場所が分かります。
なぜメモ帳は2つもあるのかはよく分からないが…。
whereコマンドの検索パターンには、ワイルドカードの「*」「?」が使えます。
オプション「/?」でヘルプを表示できますが、下の方に使用例も出力されて分かりやすいです。
> where /?
…
例:
WHERE /?
WHERE myfilename1 myfile????.*
WHERE $windir:*.*
WHERE /R c:\windows *.exe *.dll *.bat
WHERE /Q ??.???
WHERE "c:\windows;c:\windows\system32:*.dll"
WHERE /F /T *.dll
環境変数PATHEXTで指定されている拡張子は省略可
上記で確認したメモ帳「notepad」のプログラムは「notepad.exe」ですが、拡張子を付けなくてもコマンドプロンプトやファイル名を指定して実行で起動できます。
その理由は、拡張子なしで実行しようとした場合は環境変数PATHEXTによって拡張子が補われるためです。
こちらもPATHと同様で、先頭から順番に該当する拡張子のコマンドがあるかどうかを探します。
環境変数PATHEXTで設定されている拡張子は、以下のようになっていました。
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
つまり、ここにある拡張子は省略しても実行できるわけです。
よく使うWindows標準プログラムを起動するコマンド
PATHの通っているフォルダのプログラムはコマンドで実行できるので、僕はファイル名を指定して実行から起動することが多いです。
キーボードから手を離さなくていいし、マウス操作よりも楽なので。
Windows標準プログラムでよく起動するものは、
- cmd … コマンドプロンプト
- powershell … PowerShell
- notepad … メモ帳
- mspaint … ペイント
- control … コントロールパネル
- mstsc … リモートデスクトップ
- regedit … レジストリエディタ
- iexplore … Internet Explorer
あたりです。
特にWindows 10になってからはこの辺のメニューがスタートメニューの奥深くになったんで、コマンドで起動が楽かな。
インストールしたプログラムをコマンドで起動する
Windows標準プログラム以外の自分でインストールしたプログラムなどは、PATHを通せばコマンドで起動できます。
インストールしたプログラム一つずつにPATHを通すのは大変だし重複すると厄介なので、Cドライブ直下に「MyCommand」というフォルダを作成し、そのフォルダ「C:\MyCommand」にPATHを通します。
そこにコマンドで起動したいプログラムのショートカットを置けば、ファイル名を指定して実行から起動できるようになります。
今回は、サクラエディタのショートカットを置いて、ファイル名を「sakura」としています。
ただし、コマンドプロンプトからは「sakura」と打っても起動できません。
隠れていますがショートカットには拡張子が付いていて、正式なファイル名は「sakura.lnk」です。
なので、ショートカットの拡張子まで指定してコマンドを打つか、上記の環境変数PATHEXTに「.LNK」を追加して拡張子省略可能にするかで対応できます。
whereコマンドで調べてみると、PATHの通ったフォルダにショートカットはないので、追加しても問題ないはず…。
> where *.lnk
情報: 与えられたパターンのファイルが見つかりませんでした。
Cortanaはインデックスオプションに追加しておく
最後に、Windows 10のCortanaはインデックスオプションにフォルダを追加しておかないと、スタートメニューにないプログラム、インストール不要で適当な場所に配置しただけのプログラムは起動できません。
ですので、
- コントロールパネル ⇒ インデックスのオプション
- Cortana ⇒ 右上のメニュー ⇒ インデックス オプション
のどちらかで開き、変更ボタンで上記の「C:\MyCommand」フォルダを追加しておきます。
これで、スタートメニューにないプログラムなどでもCortanaからファイル名を指定して実行と同じようにコマンド名だけで起動できるようになりました。
最後に
今回は、Windows 10でPATHを通す設定手順と仕組みを解説しました。
また、便利な使い方とwhereコマンドについて紹介しました。
コマンド実行でプログラム起動できると、マウス操作よりも捗ります。
コメント