環境変数とは?
環境変数とは、システム(OS)で利用できるデータ共有機能のひとつです。
環境変数を利用して、ファイルが保存されているフォルダを取得してアプリケーションを起動するなど、様々な使い方が可能です。
少なくともWindows系OSでは環境変数が広く使われており、ソフトウェアがバックグラウンドで起動するアプリケーションが保存されているフォルダ情報などの情報が数多く保存されています。
環境変数が設定されていないと「C:Prgram FilesSample.0inapp.exe」のようにフルパスを記述してアプリケーションを起動しないといけない場面が続きますが、環境変数が設定されていたら「app.exe」だけで起動できるなどのメリットが存在しています。
Windows10でコマンド操作(コマンドプロンプトやWindows Power Shell)をしない方であれば気にする問題ではありませんが、ソフトウェア開発者やコマンド操作をする方にとっては非常に重要でしょう。
環境変数の確認方法
設定されている環境変数確認方法は大きく分けて2つかあります。コントロールパネルから確認する方法とコマンドプロンプトから確認する方法があるのでそれぞれ解説します。
環境変数プロパティ画面から確認
コマンドプロンプトで確認
コマンドプロンプトからの確認も簡単です。
各環境変数の値を確認したい場合は以下の書式で実行します。
echo %環境変数名%
例えば環境変数PATHの値を知りたい場合は、
echo %path%
のようになります。
コマンド一つで確認してしまうので、コマンド操作に慣れている方であればこちらの方が簡単かもしれません。
ですが、設定されている環境変数が多ければ多いほど見づらくなるので、その場合はコントロールパネルから確認する方法がおすすめです。
環境変数の設定方法
続いて環境変数の設定方法を解説します。環境変数の設定を間違えるとWindows10の動作に悪影響が出る可能性があるので注意してください。
環境変数プロパティ画面から設定
編集し終わったら、[OK]ボタンを押して編集画面を閉じてしまいましょう。これで環境変数を追加・編集することができます。
ちなみに二つある環境変数グループのうちシステム環境変数は、Windows10の動作に大きく関わるパラメーターが大量に設定されており、一つ間違えると取り返しがつかない事になります。
ですので、特別な理由がない限り、触る環境変数はユーザー環境変数にしてください。
コマンドプロンプト
コマンドプロンプトでも環境変数を設定することができます。
コマンドプロンプトを使う場合は設定方法が2種類あるのでそれぞれ紹介します。
一時的に環境変数を設定したい場合
起動しているコマンドプロンプト、およびそのコマンドプロンプトから起動するアプリケーションでのみ有効な環境変数を設定したい場合はsetコマンドを使用します。
構文は下記の通り
set 環境変数名=設定する値
setコマンドであれば、間違えてしまってもコマンドプロンプトを閉じれば何も問題ないので、環境変数の設定を練習したい場合はsetコマンドを使うようにしてください。
永続的に有効な環境変数を設定したい場合
少し間違えると非常に危険ですが、コマンドプロンプトを閉じた後でも有効な環境変数を設定する場合はsetxコマンドを使用します。
構文は以下の通り。
setx 環境変数名=設定する値
コマンドがsetxになったこと以外はsetコマンドと書き方が同じですが、管理者権限で起動したコマンドプロンプトでないとエラーになって変更できないので注意してください。
既存の環境変数に値を追加したい場合
環境変数PATHなど既存の環境変数に新しい値を追加する使い方が大半でしょう。その場合、絶対に以下のような書き方をしてはいけません。
setx Path=追加設定する値
このような書き方をしてしまうと、既存の環境変数の値をすべて上書きしてしまってなくなってしまいます。既存の環境変数の後ろに新しい値を追記したい場合は、以下のように「%編集する環境変数名%;追記する値」にする必要があります。
setx Path=%Path%;追加設定する値
「%編集する環境変数名%;(値を区切るためのセミコロンを忘れずに!)」を忘れてしまうと、編集しようとした環境変数の値が全て消えてしまうので注意しましょう。
コマンドプロンプトで使える環境変数周りのコマンド一覧
設定済み環境変数の確認や環境変数の編集方法について解説してきましたが、ここにコマンドプロンプトで使用できる環境変数確認・設定に役立つコマンドをまとめて紹介しておきます。
やり方はだいたい覚えているけどコマンド名を忘れるという場合は、このページをブックマークしておくか、下記解説のスクリーンショットを撮っておくと良いでしょう。
echo
echoコマンドは、コマンド名の後に指定した値や変数を出力するコマンドです。環境変数の値の確認に役立つでしょう。
echo %環境変数名%
「echo」の後に半角スペースを空けることを忘れないようにしてくださいね。
set
一時的に環境変数を設定する際に使用するコマンドです。
set 環境変数名=設定する値
コマンドプロンプトを使って環境変数を追加する際は、setコマンドで問題がないかテストし、問題がなければそのコマンドをコピーしてsetxコマンドで変更を確定させると良いでしょう。
流れとしては、
- setコマンドで環境変数を追加
- echoコマンドで正しく追加できているか確認
- 問題がなければsetをsetxに置き換えて環境変数の追加を実行
これで、環境変数設定ミスが少なくなるはずです。
setx
setコマンドの説明で少し登場しましたが、コマンドプロンプトを閉じた後でも有効な環境変数を設定するために使用します。普通に起動したコマンドプロンプトとsetxコマンドで変更できないため、管理者権限起動することを忘れないようにしてください。
setx 環境変数名=設定する値
setxでの編集はもとに戻せないので、setxコマンドを使用する際は慎重に値を設定するようにしてください。上手くいくかわからない場合は必ずsetコマンドでテストし、echoコマンドで確認してください。
環境変数設定時におさえておきたいポイント
環境変数設定しにいくつか押さえておきたいポイントがあります。
どれも大切なことですので、環境変数というWindows10のシステムに直接影響する可能性のある設定を変更するかたは絶対に知っておいてください。
ショートカットキーを使えばもっと簡単に環境変数設定画面を開ける
この記事での解説では、タスクバーの検索ボックスに「環境変数」と入力して編集画面を開きに行く必要がありましたが、もっと簡単な方法があります。
- ショートカットキー[Windows]+[Pause/Break]キーを押してシステムウィンドウを開く
- 左メニューの[システムの詳細設定]をクリック
- [環境変数]をクリック
わざわざタスクバーに文字を入力して検索する必要がないので、ショートカットキーを使った方法を覚えておけば今後役立つかもしれません。
ほとんどの場合設定する環境変数は「PATH」
TEMPやTMPなどほかの環境変数を触ることは滅多にありません。
環境変数の設定を必要な説明で「環境パスを設定する...」という文章が登場することがありますが、これは「ユーザー環境変数のPATHの設定を変更する」という意味ですので覚えておいてください。
環境変数名は大文字小文字が区別されない
環境変数名はアルファベットの大文字小文字両方を設定することができます。
目視では大文字小文字の判別が可能ですが、システム側では大文字小文字が区別されないため、全部小文字でも全部大文字でも構いません。
環境変数名にしても「PATH・Path・path・pAtH」全部同じものとして解釈されて処理されます。
このように環境変数名は一切区別されないので、読みやすい書き方にすると良いでしょう。
ただし、環境変数に設定する値は使用するソフトウェアによって大文字小文字を区別するかどうか依存するので注意してください。
コマンドプロンプトからの設定は非推奨
環境変数の設定は、コマンドプロンプトから陸の方がより細かく設定できます。
ですが、設定方法を間違えると既存の環境変数をすべて消した上で上書きしてしまい、取り返しのつかない事になってしまう可能性があります。
特に「PATH」に設定された環境変数は様々なソフトウェアの動作に関わる非常に重要なパラメーターですので、特別な理由がない限りはコマンドプロンプトではなく、コントロールパネルから設定するようにしましょう。
一部の特殊文字を使用する際は直前に「^」を付ける
環境変数を設定する場合、そのまま打ち込むとパイプやリダイレクトなど別の意味で解釈されてしまい、うまく環境変数を設定できない文字があります。
そういう文字は直前に「^」を付けることで解決します。
set sample=koreha^|sample^|desu
例えば、「|」を環境変数で使用したい場合は「^|」となります。通常では使えない文字は「^」を付けてエスケープすることで使えるようになるので覚えておいてください。
環境変数設定後はPC再起動推奨
コントロールパネルから変更した環境変数・setxコマンドを使って設定された環境変数は、プロセスが再起動した際に反映されます。
そのため、環境変数を変更した時点で実行しているソフトウェアは、一度再起動しない限り反映されません。
一つ一つ再起動するのは非常に面倒ですので、ラクに済ませたい・プロセスを再起動がよくわからないのであれば、Windows10を再起動するといいでしょう。
Windows10を再起動すればすべてのソフトウェアが完全終了するので、次回起動時には変更した環境変数が反映されています。