1. ホーム
  2. スクリプト・コラム
  3. DOS/BAT(ドス・バット

cmd 環境変数コマンド set 永続的な環境変数の設定 コマンド setx

2022-01-01 21:03:37

setコマンド

setコマンドは、現在のcmdウィンドウの環境変数を設定するために使用します。このコマンドは現在の cmd ウィンドウでのみ有効で、cmd ウィンドウを閉じると失効し、システムに保存されているユーザー環境変数には影響を与えません。

setxコマンド
setx は永久的なユーザー環境変数を設定します。

setx env_name env_value

注:パスによってはスペースが入ることがあるので、変数と値の両方を二重引用符で囲む、つまり以下のようにするとよいでしょう。

setx "env_name" "env_value"

例:ユーザーパス環境変数にパスを追記する。

setx "path" "D:\test;%path%"

setx は永久的なシステム環境変数を設定します。

setx に /m パラメータを指定すると、次のような形式でシステム環境変数が設定されます。

setx env_name env_value /m

注意:パスによってはスペースが入ることがあるので、変数と値をダブルクォートで囲む、つまり以下のようにするとよいでしょう。

<ブロッククオート

setx "env_name" "env_value" /m

例えば、システム環境の環境変数に現在のパス %cd% を設定します。

setx "パス" "%cd%;%path%" /m

注意:setxで環境変数を設定した後、新しく開いた端末に反映され、現在の端末にはすぐには反映されません。
setxは、環境変数に複数の同じ値を設定することができます。例えば、現在起動しているcmdウィンドウで:

setx "パス" "D:\test;%path%" /m

その後、cmdウィンドウを再度開き、D: \testのパスに移動し、再度実行します。

setx "パス" "D:\test;%path%" /m

これにより、path環境変数にD:ⅳtestが2回表示されるようになります。

setxとnotesで永続的な環境変数を設定する

ユーザー環境変数の設定

setx ENV_NAME env_value

システム環境変数の設定

setx ENV_NAME env_value /m

注1.
setx invalid syntax default option cannot be used more than '2' times"というエラーは、元の環境変数にあるスペースが原因だと思われ、ダブルクォートを使用することで回避できる場合があります。

注2.

setxが環境変数を設定する場合、新しく開いたターミナルで有効になり、現在のターミナルではすぐに有効になりません。したがって、パスのようなより情報量の多い環境変数を設定する場合は、一度だけ行い、同じ変数に対して繰り返しsetxを呼び出さないようにします。例えば、以下のようになります。

正しい方法

<ブロッククオート

set path_=%Path% とする。
setx "Path" "%path_%;newpath1;newpath2" /m

間違った練習方法です。

set path_=%Path% とする。
setx "Path" "%path_%;newpath1" /m
setx "Path" "%path_%;newpath2" /m

上記のエラーでnewpath1が抜けてしまいます。