setx

環境変数を永続的に設定できます。

構文

SetX の使用法は 3 とおりあります:

構文 1:
    SETX [/S システム [/U [ドメイン\]ユーザー [/P [パスワード]]]] 変数 値 [/M]

構文 2:
    SETX [/S システム [/U [ドメイン\]ユーザー [/P [パスワード]]]]
    変数 /K レジストリパス [/M]

構文 3:
    SETX [/S システム [/U [ドメイン\]ユーザー [/P [パスワード]]]]
         /F ファイル {変数 {/A x,y | /R x,y 文字列}[/M] | /X} [/D 区切り文字]

説明:
    ユーザーまたはシステムの環境の中で環境変数を作成または
    変更します。引数、レジストリ キー、またはファイル入力を
    もとに変数を設定することができます。
setx /?

注意

  1. SETX は、レジストリの中のマスター環境に変数を書き込みます。
  2. ローカル システム上では、このツールで作成または変更した変数は、現在のコマンド ウィンドウでは利用できませんが、その後のコマンド ウィンドウで利用できます。
  3. リモート システム上では、このツールで作成または変更した変数は次のログオン セッションで利用できます。
  4. 有効なレジストリ キー データの種類は REG_DWORD、REG_EXPAND_SZ、REG_SZ, REG_MULTI_SZ です。
  5. サポートされているハイブは HKEY_LOCAL_MACHINE (HKLM)、HKEY_CURRENT_USER (HKCU) です。
  6. 区切り文字は大文字と小文字を区別します。
  7. REG_DWORD 値は、レジストリから 10 進数形式で抽出されます。
setx /?

オプション

/S     システム        接続先のリモート システムを指定します。

/U [ドメイン\]ユーザー  コマンドが実行されるユーザー
                        コンテキストを指定します。

/P     [パスワード]    指定されたユーザーのコンテキストのパスワード
                       を指定します。省略すると入力が促されます。

変数                   設定する環境変数を指定します。

値                     環境変数に割り当てられる値を指定
                       します。

/K     レジストリパス  レジストリ キーからの情報を基に変数が
                       設定されることを指定します。
                       パスは hive\key\...\value の形式で指定します。
                       例:
                       HKEY_LOCAL_MACHINE\System\CurrentControlSet\
                       Control\TimeZoneInformation\StandardName.

/F     ファイル        使用するテキスト ファイルの名前を指定し
                       ます。

/A     x、y            ファイルの絶対座標 (行 X、項目 Y) を
                       パラメーターとして指定し、ファイル内を検索
                       します。

/R     x,y 文字列      "文字列" を検索パラメーターとして
                       ファイルへの相対座標を指定します。

/M                     変数をシステム全体 (HKEY_LOCAL_MACHINE)
                       の環境で設定することを指定します。
                       既定では、HKEY_CURRENT_USER 環境で変数
                       を設定するように設定されています。

/X                     x y 座標でファイルの内容を表示します。

/D     区切り文字    "," や "\" など、追加の区切り文字を指定し
                       ます。ビルトインの区切り文字は空白、タブ、
                       キャリッジ リターン、ラインフィードです。
                       ASCII 文字はどれでも追加の区切り文字として
                       使用できます。区切り文字は、ビルトインの
                       ものも含めて最大 15 個まで指定できます。

/?                     このヘルプを表示します。
setx /?
オプション 機能
   

利用例

SETX MACHINE COMPAQ
SETX MACHINE "COMPAQ COMPUTER" /M
SETX MYPATH "%PATH%"
SETX MYPATH ~PATH~
SETX /S system /U user /P password  MACHINE COMPAQ
SETX /S system /U user /P password MYPATH ^%PATH^%

SETX TZONE /K HKEY_LOCAL_MACHINE\System\CurrentControlSet\
    Control\TimeZoneInformation\StandardName
SETX BUILD /K "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
    NT\CurrentVersion\CurrentBuildNumber" /M
SETX /S system /U user /P password TZONE /K HKEY_LOCAL_MACHINE\
    System\CurrentControlSet\Control\TimeZoneInformation\
    StandardName
SETX /S system /U user /P password  BUILD /K
    "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\
    CurrentVersion\CurrentBuildNumber" /M

SETX /F ipconfig.out /X
SETX IPADDR /F ipconfig.out /A 5,11
SETX OCTET1 /F ipconfig.out /A 5,3 /D "#$*."
SETX IPGATEWAY /F ipconfig.out /R 0,7 Gateway
SETX /S system /U user /P password  /F c:\ipconfig.out /X
setx /?

PATHへの追加

C:\>setx PATH %PATH%;c:\program

カレントユーザーではなくシステムの環境変数に追記するならば、/Mオプションを指定して、

C:\>setx /M PATH %PATH%;c:\program

のようにします。