20.環境変数について

環境変数とはOSなどのシステムが提供する情報共有の仕組みをいいます。OSはOS上で動作するアプリケーションと情報共有するための簡易なデータベースを持っています。

このデータベースは変数の形をとっており「変数名=値」という書式で表すことができます。主な内容としてはWindowsの場合、Windowsのバージョンや、アプリケーションの保存場所、ユーザーディレクトリの保存場所、起動可能なファイルの拡張子などがあります。

環境変数はWindowsのみが持つものでなく、UNIX, Linux, MacなどほとんどのOSで持っていますし、OSとは異なりますが、Linuxなどで使用されるシェルや、Webでもそれぞれ独自の環境変数が使われています。

それでは、環境変数はそのようにして利用されているのでしょうか?
各OS上で動作するアプリケーション(タスクと言います)は、起動時にOSの持つ環境変数のコピーを作成し、アプリケーション内で変数の値を参照、編集を行います。通常、編集された環境変数はアプリケーション終了時に破棄されますが、必要であればOSに戻されます。

環境変数は変数を使用しますが、プログラムで使用されている変数と違って、整数や不動小数点など様々な「型」を持っていません。環境変数がサポートすることのできる型は文字列型のみとなります。

環境変数の種類や値を確認するにはコマンドプロンプトの「SET」コマンドを使用すると簡単です。コマンドプロンプトではなくWindows上で確認するには以下のようにして表示させます。

環境変数パネルを表示する

「設定」から「システム」を選択し、左ペインから「バージョン情報」を選択します。バージョン情報画面の右側に「システム情報」があるので、それをクリックします。

システム情報をクリックするとコントロールパネルの「システム」が表示されますので、右ペインにある「システムの詳細設定」をクリックします。

ここまでの過程はタスクバーの検索窓に「システムの詳細設定」と入力することで省略することもできます。

システムの詳細設定をクリックすると「システムのプロパティ」パネルが表示されるのでパネル下部にある「環境変数」をクリックします。

「環境変数」パネルが表示されました。パネル上部がユーザー環境変数で、この部分はユーザーごとに違います。下部はシステム環境変数といい、システム構成によってはあまり違いがありません。(ぼかしの部分にはパスが書かれています。詳細は皆さんの環境で確かめて下さい。)

パネルを見ると「新規」「編集」「削除」と書かれていますが、既存の環境変数を編集、削除してしまうと、アプリケーションが動かなくなったり、システムが適切に動作しなくなることがあるので注意が必要です。編集などが必要な変数名と値をよく確認してから使うようにしましょう。

また、誤って編集や削除をしてしまった時のために、環境変数のバックアップを作っておくといいでしょう。

環境変数のバックアップ

環境変数のバックアップを取るにはいくつか方法がありますが、ここではコマンドプロンプトを使った方法を紹介します。

必要なコマンドは環境変数の内容を表示するコマンド「SET」コマンドです。SETコマンドは簡単な書式で環境変数の、一覧表示、絞り込み、編集、削除ができます。次に必要となるのがリダイレクトです。

このブログをずっとご覧いただいている方ならこの時点で何をするのかわかられると思いますが、念のため説明しておきましょう。

まず、コマンドプロンプトを立ち上げて、SETコマンドを使い環境変数の一覧を表示させます。次に同じ内容でリダイレクトを使いファイルに保存します。以上でバックアップ終了です。簡単ですね!

環境変数は文字列型の変数です。変数名とその値がテキストで書き出せれば、間違って編集してしまったり、削除したとしても新規に同じ変数名、値で作り直せば元に戻すことができます。

では実際にバックアップファイルを作成してみましょう。

> SET > environment-var.txt

これでカレントディレクトリにenvironment-var.txtというファイルが作成されます。TYPEコマンドなどで内容を表示してみましょう。

> TYPE environment-var.txt
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\uotaa\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=WINDOWS10
ComSpec=C:\Windows\system32\cmd.exe
DriverData=C:\Windows\System32\Drivers\DriverData
HOMEDRIVE=C:
HOMEPATH=\Users\kobedneshi
LOCALAPPDATA=C:\Users\kobedneshi\AppData\Local
LOGONSERVER=\\WINDOWS10
NUMBER_OF_PROCESSORS=6
OneDrive=C:\Users\kobedneshi\OneDrive
OneDriveConsumer=C:\Users\kobedneshi\OneDrive
OS=Windows_NT
Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\uotaa\AppData\Local\Microsoft\WindowsApps;;C:\Users\uotaa\AppData\Local\Programs\Microsoft VS Code\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 158 Stepping 10, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=9e0a
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\kobedneshi\AppData\Local\Temp
TMP=C:\Users\kobedneshi\AppData\Local\Temp
USERDOMAIN=WINDOWS10
USERDOMAIN_ROAMINGPROFILE=WINDOWS10
USERNAME=kobedneshi
USERPROFILE=C:\Users\kobedneshi
windir=C:\Windows

と、こんな感じの内容が表示されたともいます。パッと見るだけだと何が何だかわからないかもしれませんが、じっくりよーく見てみると、全て「変数名=値」で書かれていることがわかります。

例えば、最後から3行目にある「USERNAME=kobedneshi」皆さんの アカウント名ですね。「HOMEPATH=\Users\kobedneshi」はホームディレクトリのパスがHOMEPATHという変数に入っています。

全ての変数の役割がわかるようになるにはコンピュータの知識がそれだけ必要になりますが、変数名からそれぞれの意味を調べてみるのも面白いでしょう。

環境変数一覧

環境変数名意味
ALLUSERSPROFILEAll Usersのプロファイルパス
APPDATAアプリケーションデータディレクトリ
CommonProgramFilesプログラムファイル用の共通ディレクトリ
CommonProgramFiles(x86)32bitプログラムファイル用の共通ディレクトリ
CommonProgramW643264Bitプログラムファイル用の共通ディレクトリ
COMPUTERNAMEコンピュータ名
ComSpeccmd.exeの絶対パス
DriverDataドライバーデータディレクトリ
HOMEDRIVEホームドライブ
HOMEPATHホーム(ディレクトリへの)パス
LOCALAPPDATAローカルのアプリケーションデータ
LOGONSERVERログオンしているサーバ名称
NUMBER_OF_PROCESSORSプロセッサー数(CPUのCore数)
OneDriveOneDriveディレクトリ
OneDriveConsumer
OSオペレーティングシステム名称
Pathパスの一覧。登録されたディレクトリではパスなしで実行可能
PATHEXT拡張子無しで実行可能なファイル
PROCESSOR_ARCHITECTUREアーキテクチャ
PROCESSOR_IDENTIFIERCPUの詳細
PROCESSOR_LEVELCPUのFamily 値
PROCESSOR_REVISIONCPUのリビジョン
ProgramDataプログラム用データディレクトリ
ProgramFilesプログラム用ディレクトリ
ProgramFiles(x86)32bitプログラム用ディレクトリ
ProgramW643264Bitプログラム用ディレクトリ
PROMPTコマンドプロンプトの出力タイプ
PSModulePathPowerShellモジュールのパス
PUBLICPublicフォルダ
SESSIONNAMEセッション名
SystemDriveシステムドライブ
SystemRootシステムルート
TEMPテンポラリディレクトリ
TMPテンポラリディレクトリ
USERDOMAINログオンしているドメイン名
USERDOMAIN_ROAMINGPROFILEログオンしているドメイン名
USERNAMEユーザ名
USERPROFILEユーザープロファイルディレクトリ
windirWindowsディレクトリ

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA