対象:Windows 10/Windows Server 2016
コマンドプロンプトを開いて作業することが多いユーザーなら、よく使うコマンドや、自分で作成したツールなどをどこかのフォルダにまとめて管理しているだろう。そのような場所に保存されているコマンドを起動したい場合、Path環境変数にフォルダの場所をセットしておけば、フルパス名を使わなくても簡単に呼び出せる。
例えば、「D:\MyCommand」フォルダにコマンドが保存されているとすると、Path環境変数にこの場所をユーザーが自分で追加しておけば、カレントフォルダの場所がどこであっても、「D:\MyCommand\mybatch.cmd」ではなく、単に「mybatch」と入力するだけでコマンドを起動できるようになる。
コマンドの起動方法やPath環境変数の概要、制限などについては、次の記事も参照していただきたい。
Pathには複数のフォルダのパスを「;」(セミコロン)で区切って列挙できるが、同じ名前のコマンドが複数のフォルダ中に存在する場合は、Path環境変数の先頭の方にあるフォルダが優先される。実際にどのファイルが実行されているかは、次のTIPSで紹介しているwhereコマンドなどを使えば確認できる。
Path環境変数はユーザーごとにそれぞれ異なる値を設定できる。通常は、システム全体で共通のPathの値に、ユーザーごとのPathの値をマージして利用する。Path環境変数の値を確認/設定するには、コントロールパネルから起動する「システムのプロパティ」画面を使うか、setxコマンドなどを利用する。
Windows 10やWindows Server 2016以降では、環境変数の設定/編集画面が更新されているので、本TIPSではその使い方について説明しておく。
Path環境変数を設定するには、まず「システムのプロパティ」画面を表示させる。まずはTIPS「Windows 10でコントロールパネルの[システム]や[システムのプロパティ]を素早く開く方法」を使って[システムのプロパティ]画面を表示させ、[詳細設定]タブを選択してから、[環境変数]をクリックする。
Path環境変数には、ユーザーごとに固有の「ユーザー環境変数」と、システム全体で共通の「システム環境変数」の2つがある。ユーザーがシステムにサインインすると、この2つが結合されて(内部的には、システム環境変数Pathの後ろに、ユーザー環境変数Pathの内容が追加される)、これがコマンドプロンプトやアプリケーションなどに渡されることになる。
一般的には、ユーザー環境変数のPathを変更すればよいだろう。だが同じPCにサインインする複数のユーザーやアプリケーション、タスクなどで1つのコマンドフォルダを共有したい場合はシステム環境変数側のPathを編集する。
なお環境変数には、Path以外にもさまざまな変数が設定されているので、Pathを編集する場合には、用途に応じていずれかのPathを選んでから[編集]ボタンをクリックする。Pathを選ばずに[新規]や[編集]ボタンをクリックすると、Pathへの新規追加や編集が行えないので注意したい。
編集したい方のPath変数を選んでからダブルクリックするか、[編集]ボタンをクリックすると、次のような編集画面が表示される。
新しいフォルダのパスを追加するには[新規]ボタンをクリックするか、空行の部分をダブルクリックする。するとパスの入力欄が表示されるので、そこに直接フルパス名を手動で入力するか、[Ctrl]+[V]キーでパスのテキストを貼り付ける。GUIでフルパスを指定したいなら、右にある[参照]ボタンをクリックして[フォルダーの参照]ダイアログを表示させればよい。
この画面を使って入力する場合、パスの末尾にセミコロンを付ける必要はない。追加したいパスを、1行に1つずつ書いていく。
追加したパスもしくはすでにあるパスの内容を修正するには[編集]を、削除するには[削除]ボタンをクリックする。
新規に追加したパスは必ず末尾に置かれるので、優先度を上げたければ、[上へ]や[下へ]ボタンをクリックして移動させる。前述の通り、上にある方が検索の優先度は高くなるし、ユーザー環境変数よりもシステム環境変数の方が先に検索される。
この入力編集画面は、フルパス名を2つ以上列挙するタイプの環境変数を選択すると自動的に表示される(Path以外の、例えばLibなどでも同様だ)。だが、そうでない(内容がフルパス名でない)環境変数の場合や、上の画面で[テキストの編集]ボタンをクリックした場合は、従来のWindows OSのようなシンプルな入力画面が表示される。
この画面には[ディレクトリの参照]や[ファイルの参照]ボタンがあるので(これはWindows 7などでは利用できない)、これを使うと、設定先のファイルやフォルダのフルパスを間違いなく設定できる。
ちなみにユーザー環境変数とシステム環境変数の両方で同じ名前の変数を定義した場合は(デフォルトで設定されているTMPとTEMPがこれに相当)、まずシステム環境変数が設定された後、ユーザー環境変数が設定される。これにより、結果的にはユーザー側の設定が優先されているように見える。システム環境変数側のみを利用したい場合は、ユーザー環境変数側の同名の変数を削除するとよい。
ただしPath環境変数の場合は、システム側のPath設定の末尾に、ユーザー側のPath設定が追加される。これと同様のことを行うには、ユーザー側で例えば「%path%;C:\mypath1」のように設定する。
環境変数の値や優先度などの設定が完了したら、[OK]ボタンを押して、[環境変数]の画面を閉じること。閉じないと反映されないので、もし設定を間違えたり、削除してしまったりした場合は、[OK]ではなく、[キャンセル]を押すと、何も変更されずに終了する。
環境変数の設定が完了しても、その結果はすでに起動中のアプリケーションやプロセス、コマンドプロンプトなどには反映されない。環境変数を変更したら、コマンドプロンプトやアプリケーションなどをいったん閉じてから再実行すること。
特にシステム環境変数の値を変更した場合は、一度サインアウトして再サインインしたり、場合によっては再起動したりしないと反映されないものもあるので注意が必要だ。例えば、システム環境変数のTMPやTEMPを変更して、Windows OS自身が使う一時ファイルの保存場所を変更させた場合は(起動時に作成される幾つかのログファイルは、TMPで指定された場所に作成される)、有効にするためにはシステムの再起動が必要になる。
上記の例では、Path環境変数にドライブ名から始まるフルパス名を指定しているが、場合によっては他の環境変数を使うと便利なことがある。
例えばOneDriveなどのクラウドドライブ上に「\Command」というフォルダを作成してこの中にコマンドを保存しているなら、「%OneDrive%\command」や「%userprofile%\onedrive\command」という値をPathに追加しておくと、ユーザーフォルダの場所やドライブの構成などが変わっても、どのPC上でも同様に利用できるようになる。この場合、設定画面上では環境変数の値が展開されているように表示されるが、実際には元の「%OneDrive%\command」という文字列のまま編集できる。
環境変数を使う方法以外にも、例えばシンボリックリンクやジャンクションを使って、どのPCでも共通になるようなパスを作成しておき、それをPathに設定するという方法もある(以下の記事参照)。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.