実際に環境変数を設定する
システム/ユーザー環境変数を設定するには、「設定」→「システム」→「バージョン情報」→「関連リンク:システムの詳細設定」で表示される「システムのプロパティ」ダイアログの「環境変数」ボタンで「環境変数」ダイアログボックスを開く(記事冒頭画面)。
かなり深いところにあって操作が面倒だが、以下のコマンドを使うと簡単に開くことができる。
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アプリケーションでも環境変数を参照するものがある。また、コマンドラインを使うときに環境変数というものがあり、一部のコマンドは環境変数を見て動作を決定することは知っておいたほうがいいだろう。
この連載の記事
-
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る - この連載の一覧へ