このページの本文へ

前へ 1 2 次へ

Windows Info 第358回

Windowsにおける環境変数をあらためて整理する

2022年12月18日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 Windowsを始め、Unixの影響を受けているOSが持つ機能に環境変数がある。環境変数は、実行するプログラムに対してなんらかの情報/パラメーターを与える方法。1979年に作られたVersion 7 Unixに搭載され、Unixの基本的な機能の1つとして今でも使われている。

環境変数ダイアログボックスでは、システム環境変数とユーザー環境変数を作成、編集することが可能だ

 プログラムに対して情報やなんらかのパラメーターを与える方法にはコマンドラインがあるが、環境変数は事前に定義しておくもので、複数回実行されるプログラムに常に同じ情報/パラメーターを指定する。あるいは、デフォルト値のように常に情報/パラメーターを指定するといった使い方をすることが多い。

 典型的なUnix系のコンソールアプリケーションでは、コマンドラインのオプション指定の一部を環境変数から受け取ることができるものが多い。

 Windowsでも、cmd.exeの組み込みコマンドである「dir」は、「DIRCMD」という環境変数からコマンドラインと同じオプション指定を受け取ることができる。これを使うと、起動時にオプションをすべて省略したときの動作を環境変数に指定しておくことができる。

 たとえば、以下のコマンドを実行すると、名前の逆順にファイルのリストを出力する。

set DIRCMD=/O-N
dir

 詳細は、“dir /?”で表示されるオンラインヘルプを参照してほしい。

 環境変数はシェルでも頻繁に使われる。以下の表にシェルごとのプロセス環境変数の使い方を示す。

Windowsにおける環境変数の仕組み

 Windowsの環境変数は大きく3つの種類がある。「システム環境変数」「ユーザー環境変数」「プロセス環境変数」だ。システム環境変数はマシン内のすべてのユーザーに共通の環境変数、ユーザー環境変数はユーザーごとの環境変数だ。この2つはレジストリに記録されており、起動時に合成されて「プロセス環境変数」になる。このときの合成では、ユーザー環境変数の値が優先され、同名の環境変数があれば、ユーザー環境変数の値が使われる(例外あり)。

 すべてのプロセス(UWPアプリを除く)は、プロセス環境変数を親プロセスから受け継ぐ。親プロセスが環境変数を変更しなければ、それは、システム/ユーザー環境変数を合成したものがそのまま使われる。

 コマンドプロンプトやPowerShellなどの「シェル」プログラムには環境変数を表示・変更する機能がある。こうしたプログラムでは環境変数を変更したのち、子プロセスとしてプログラムを起動できる。このプログラムは、シェルで変更された環境変数を受け継ぐ。

 シェルで環境変数を書き換え、プログラムを実行したとき、プログラムは書き換えられた環境変数を参照することになる。ただし、環境変数を使うかどうかはプログラム次第である。前述のDIRのように環境変数を使うプログラムもあれば、そうでないプログラムもある。参照する環境変数名もプログラムにより異なる。

 環境変数は、「環境変数名」と「値」から構成される。どちらも文字列で、環境変数名はアルファベットと数字および一部の記号(コマンドラインで意味を持つ記号を除く)が利用できる。基本的にはファイル名と同じと考えてかまわない。ただし「=」は環境変数名に使うことはできない。

 1つの環境変数のサイズは64KB以内という制限があるが、実際には、設定するシェルなどの制限(たとえば1行の長さの最大値など)を受ける。

 プロセス環境変数は、「環境変数ブロック」と呼ばれるメモリ内の領域に記録される。過去のWindowsでは、この環境変数ブロックの大きさに制限があったが、Windows 10/11ではその制限はない。

 環境変数ブロックは、親プロセスの環境変数ブロックのコピーである。ただし、プロセスが終了すると環境変数ブロックは廃棄されてしまう。子プロセスから親プロセスに対して環境変数を使ってなにか情報を伝達することはできない。環境変数による情報の伝達は、常に親から子プロセスへの一方通行である。

 また、環境変数ブロックは、プロセスの起動時に親から受け取るため、起動後の「システム/ユーザー環境変数」の変更を受け取ることはできない。原則として環境変数は起動時点のままとなる。

 このため、CMD.EXEなどでは、システム/ユーザー環境変数が更新されたらプロセスを終了し、新規に起動する必要がある。注意する必要があるのは、Windows Terminalのように複数のシェルを起動可能な端末ソフトウェアを使う場合だ。Windows Terminalで実行されるCMD.EXEは、親がWindows Terminalとなるため、新規にCMD.EXEを起動しても、受け取るプロセス環境変数は同じものになる。これは、Windows Terminalが起動時に受け取ったプロセス環境変数がそのまま使われるからだ。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事
1
【整備済み品】 富士通 ノートパソコン LIFEBOOK MU937 超軽量 薄型ノートPC■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第七世代 Celeron/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
【整備済み品】 富士通 ノートパソコン LIFEBOOK MU937 超軽量 薄型ノートPC■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第七世代 Celeron/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
¥19,800
2
【整備済み品】中古 ノートパソコン NEC VersaPro VKT16/15.6型・第8世代Core i5-8250U(最大動作3.4GHz)/快適メモリ8GB/ 高速SSD 256GB/Win11 Pro/MS Office 2019付属/テンキー付, Webカメラ, USB3.0, HDMI, VGA, 有線LAN, WIFI内蔵, Bluetooth/ACアダプター付属/180日間保証
【整備済み品】中古 ノートパソコン NEC VersaPro VKT16/15.6型・第8世代Core i5-8250U(最大動作3.4GHz)/快適メモリ8GB/ 高速SSD 256GB/Win11 Pro/MS Office 2019付属/テンキー付, Webカメラ, USB3.0, HDMI, VGA, 有線LAN, WIFI内蔵, Bluetooth/ACアダプター付属/180日間保証
¥26,880
3
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥36,979
4
HP ノートパソコン 15-fd 15.6インチ インテル Core Ultra 5 125H メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M7PA-AAAF)
HP ノートパソコン 15-fd 15.6インチ インテル Core Ultra 5 125H メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M7PA-AAAF)
¥134,377
5
Apple 2025 MacBook Pro 10 コアCPU、10 コアGPU のM5 チップ搭載ノートパソコン:Apple Intelligence のために設計、14.2 インチLiquid Retina XDR ディスプレイ、16GB ユニファイドメモリ、512GBのSSD ストレージ - スペースブラック
Apple 2025 MacBook Pro 10 コアCPU、10 コアGPU のM5 チップ搭載ノートパソコン:Apple Intelligence のために設計、14.2 インチLiquid Retina XDR ディスプレイ、16GB ユニファイドメモリ、512GBのSSD ストレージ - スペースブラック
¥238,747

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥1,880
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
¥980
4
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥5,280
7
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥980
8
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥5,545
9
バッファロー SDカード 128GB 100MB/s UHS-1 スピードクラス1 VideoSpeedClass10 IPX7 Full HD データ復旧サービス対応 RSDC-128U11HA/N
バッファロー SDカード 128GB 100MB/s UHS-1 スピードクラス1 VideoSpeedClass10 IPX7 Full HD データ復旧サービス対応 RSDC-128U11HA/N
¥1,980
10
バッファロー USBメモリ 32GB USB3.2(Gen1)/3.1(Gen 1)/3.0/2.0 充実サポート RUF3-K32GA-BK/N
バッファロー USBメモリ 32GB USB3.2(Gen1)/3.1(Gen 1)/3.0/2.0 充実サポート RUF3-K32GA-BK/N
¥880

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン