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"のところがダブルクオーテーションで囲われているのは、パスに半角スペースが含まれており、それをエスケープするためです。
参考リンク