このページの本文へ

前へ 1 2 次へ

Windows Info 第358回

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

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

文● 塩田紳二 編集● ASCII

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

実際に環境変数を設定する

 システム/ユーザー環境変数を設定するには、「設定」→「システム」→「バージョン情報」→「関連リンク:システムの詳細設定」で表示される「システムのプロパティ」ダイアログの「環境変数」ボタンで「環境変数」ダイアログボックスを開く(記事冒頭画面)。

 かなり深いところにあって操作が面倒だが、以下のコマンドを使うと簡単に開くことができる。

C:\Windows\system32\rundll32.exe sysdm.cpl, EditEnvironmentVariables

 これをショートカットやBatchファイルで作っておくと起動が楽になる。

ショートカットを作成すれば、簡単に環境変数ダイアログボックスを開くことができるようになる

 システム、ユーザー環境変数をコマンドラインから直接変更、追加するには、setx.exeコマンドを使うことができる。基本的な書式は、

setx.exe 環境変数名 値 [/M]

である。最後に「/M」を付けると「システム環境変数」の設定(要管理者権限)、付けなければユーザー環境変数の設定である。なお、setx.exeではシステム/ユーザー環境変数を表示することはできない。

 システム環境変数は、レジストリの

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment

に記録されており、ユーザー環境変数は、

HKEY_CURRENT_USER\Environment

に記録されている。

 PowerShellからシステム/ユーザー環境変数にアクセスする場合には、以下のコマンドが利用できる。

[System.Environment]::GetEnvironmentVariable(〈変数名〉,〈対象〉)

 ここで〈対象〉は、システム環境変数のとき「"Machine"」、ユーザー環境変数のときには「"User"」を指定する。変数を定義/変更するには「[Environment]::SetEnvironmentVariable”」を使う。

 WSLのbashなど、Linuxのシェルでは、.bashrcなどのシェルの初期化ファイルで環境変数をすべて定義する(詳しくはシェルのmanページを参照のこと)。たとえば、bashならばユーザーディレクトリにある「.basrc」(ユーザーごとでWindowsのユーザー環境変数に相当)や「/etc/bash.bashrc」(ユーザー共通でシステム環境変数に相当)などである。

システム/ユーザー環境変数を実行中のシェルに反映させる

 PowerShellでシステム/ユーザー環境変数を書き換えた場合、上記のコマンドを使って特定の環境変数を再読込させることもできる。1つのコマンドですべての環境変数を更新させることはできないが、1つの環境変数だけならば、以下のコマンドで再設定が可能だ。

$env:〈変数名〉=[System.Environment]::GetEnvironmentVariable(〈変数名〉,〈対象〉)

 WSLのbashの場合には、組み込みコマンドであるsourceコマンドを使って、.bashrcなどを再度読み込む。詳細は、bash-builtinsのmanページを参照してほしい。

 環境変数は、Unix/Linux系のOSを使っているユーザーやDOS時代からのユーザーにはなじみ深いものだが、GUIユーザーには必ずしもそうではない。しかし一部ではあるが、GUIアプリケーションでも環境変数を参照するものがある。また、コマンドラインを使うときに環境変数というものがあり、一部のコマンドは環境変数を見て動作を決定することは知っておいたほうがいいだろう。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

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