2011年6月19日日曜日

Windowsの環境変数をsetxで永続的に設定


Windowsの環境変数を永続的(マシン再起動後にも設定が有効となるように)、かつ、スクリプトで自動で設定できないかなぁと調べてみました。

Windows Support Toolsに含まれるsetxコマンドを使えば良いとのこと。詳細は以下リンクをご参照。

setxで環境変数の値を設定する(基本編) 


で困ったのが、複数の環境変数をsetxで設定した後に、それらをユーザー変数のPATHにどんどん追加しようとした時。何故か最後のsetxのみ有効になってしまうという。

ということで下記のような書き方で対応。
一時的な変数USER_PATHにどんどん追加していって、最後にsetxコマンドで環境変数に設定するというやり方です。
set USER_PATH=%USER_PATH%;"%SCALA_HOME%\bin"
set USER_PATH=%USER_PATH%;%SBT_HOME%
setx PATH %USER_PATH%
ちなみに"%SCALA_HOME%\bin"のところがダブルクオーテーションで囲われているのは、パスに半角スペースが含まれており、それをエスケープするためです。


参考リンク