Windowsバッチファイルからシステム環境変数を設定しますか?


195

Windows 7(さらに言えばXP)のコマンドプロンプトからシステムレベルで環境変数を設定することは可能ですか?管理者特権のコマンドプロンプトから実行しています。

setコマンド(set name=value)を使用すると、環境変数はコマンドプロンプトのセッションでのみ有効のようです。

回答:


179

XPサポートツール(XP CDからインストールできます)には、次のプログラムが付属していsetx.exeます。

C:\Program Files\Support Tools>setx /?

SETX: This program is used to set values in the environment
of the machine or currently logged on user using one of three modes.

1) Command Line Mode: setx variable value [-m]
   Optional Switches:
    -m  Set value in the Machine environment. Default is User.

...
For more information and example use: SETX -i

Windows 7は実際にはsetx標準インストールの一部として付属していると思います。


7
Windows 7(おそらくVistaはすでに)にsetx標準がありますが、小さな変更がありますか?-iフラグはなく、実行setx /?するだけですべてのヘルプと例が表示されます
stijn

3
入力してwhereからプログラムの名前を入力することで、このプログラムがパスにあるかどうかを常に確認できることを忘れないでください(この場合where setx.exe、Server 2008およびServer 2008SP2ボックスでこれをテストした場合、どちらの場合にも存在していたことがわかりました%windir%\System32\setx.exe
aolszowka

2
@stijn-Win7バージョンでも、フラグイントロデューサが正式に-スラッシュに変更されました/。ただし、-バージョンはまだ機能しているようです。
TED

2
setx変数の内容には1024の長さ制限があるようです
zhy2002

XP SP2サポートツールが提供するsetxにはスラッシュが必要/で、ダッシュ-は機能しません。setx variable value /m
キース

137

setx.exeコマンドラインでJAVA_HOMEを設定する簡単な例:

setx JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

これにより、現在のユーザーの環境変数「JAVA_HOME」が設定されます。すべてのユーザーに変数を設定する場合は、オプション「-m」を使用する必要があります。次に例を示します。

setx -m JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

:このコマンドは管理者として実行する必要があります。

:コマンドを必ず実行してくださいコマンドラインの管理ウィンドウから setx


7
また、ノートいくつかのツールを使用して、それの価値があるので、JAVA_HOMEにはスペース好きではないことをProgra~1そうのように: setx /M JAVA_HOME "C:\Progra~1\Java\jdk1.7.0_09"
SAMAEL

1
これが私の人生のどこだったのですか。
フィリップレゴ2017年

20

SETXを介して変数を設定した場合、この変数またはその変更をすぐに使用することはできません。使用したいプロセスを再起動する必要があります。

次のシーケンスを使用して、設定プロセスで直接設定することもできます(グローバル変数の設定後にいくつかの初期化を行うスクリプトで完全に機能します)

SET XYZ=test
SETX XYZ test

ありがとう、これで頭がおかしくなりました!CMD.EXEは、通常のコンソールのように動作するように必死にアップグレードする必要があります...!
サルバドールバレンシア

これがわかりません。これらの2行はどこで実行しますか?
Danijel

1
refreshenv新しい変数を利用するためにsetxを使用した後にコマンドを実行することもできます。
BrianHVB

@BrianHVB refreshenvはコマンドとして認識されません。あなたはこれをしていますcmdpowershell?(編集:実際には両方でテストされ、どちらのコンソールでも機能しません)
bigp

@bigpおっと、あなたは正しい。Chocolateyのインストール時に追加されるコマンドです。私はすべてのシステムにチョコレートが入っており、見上げるまで気づきませんでした。
BrianHVB

2

XPの場合、私は "RAPIDEE"(Rapid Environment Editor)と呼ばれる(無料/寄付)ツールを使用しましたが、Win7ではSETXで十分です(これについては以前は知りませんでした)。


2

システム変数は、CMDとレジストリFor exを使用して設定できます。reg query "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" / v PATH

一般的に使用されるすべてのCMDコードとシステム変数を以下に示します。CMDを使用してWindowsシステム環境変数を設定します

CMDを開いてSetと入力します

システム変数のすべての値を取得します。

set javaと入力して、ウィンドウOSにインストールされているjavaのパスの詳細を確認します。


1

変数を削除する必要がある場合に備えて、http: //barnyard.syr.edu/~vefaticaで入手可能なVincent FaticaのSETENVを使用できます。正確には最近('98)ではありませんが、Windows 7 x64で動作しています。


5
setxでは、値を空白に設定して削除することもできます
Steve Lloyd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.