コマンドプロンプトからWindows環境変数を設定および取得しますか?


220

コマンドプロンプトから環境変数を設定し、グローバルにアクセスできるようにします(たとえば、[システム]-> [環境変数]に移動すると表示されます)。

setコマンドを使用すると、新しいcmdセッションでアクセスできません。

set NEWVAR=SOMETHING
echo %NEWVAR%

関連する質問:


1
setx変数値-コマンドプロンプトを再起動します-
アンドリュー

回答:


252

環境変数をグローバルにアクセス可能にするには、レジストリで環境変数を設定する必要があります。以下を使用するだけで実現したように:

NEWVAR = SOMETHINGを設定します

現在のプロセス空間で設定するだけです。

このページによると、setx次のコマンドを使用できます。

setx NEWVARサムシング

setxWindows 7に組み込まれていますが、古いバージョンの場合は、Windowsリソースキットをインストールした場合にのみ利用可能です


4
たとえば、クォータを指定する必要があることに注意してくださいsetx JAVA_HOME "C:\Program Files\Java\jdk1.7.0_45"。しかし、setx JAVA_HOME C:\Program Files\Java\jdk1.7.0_45構文エラー
MD。モヒウディンアーメド

5
@ MD.MohiuddinAhmedこれは、パスにスペースが含まれているためです。
ChrisF

36

「setx var variable / M」を使用して、varをユーザーレベルではなくシステム環境変数レベルに設定することもできます。

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


10
setx program "C:\Program Files" /M

@Minh Chau回答のようなユーザーレベルではなくシステム環境変数レベルを設定するための/ M

テスト ここに画像の説明を入力してください

RESTARTコマンドライン(コマンドラインを再起動しない場合、環境変数は機能しません)

ここに画像の説明を入力してください


これにより別の回答が複製され、新しいコンテンツは追加されません。実際に何か貢献できるものがない限り、回答を投稿しないでください。
DavidPostill

8
@DavidPostill私の答えは新しいものです、コマンドラインを再起動する必要があります。重要だと思う
ファンヴァンリン

2

setx env var [/M]上記のように使用できます。有効にならない場合は、refreshenv環境変数を更新するために使用できます。コンピューター、explorer.exe、またはコマンドプロンプトを再起動する必要はありません。

編集:Windowsでは当然refreshenvは自然に来ないので、ソースは次のとおりです:https :
//pastebin.com/1fJqA0pT RefreshEnv.cmdとして保存し、PATH環境変数に含まれるフォルダに配置します


1
「refreshenv」に言及するための+1-私はこれまでに出くわしませんでした!
フランシスノートン

1

システム変数は、CMDおよびレジストリを通じて設定できます。reg query "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" / v PATH

一般的に使用されるすべてのCMDコードとシステム変数は、次のとおりです。CMDを使用してWindowsシステム環境変数を設定します

CMDを開き、Setと入力します

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

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


質問を注意深く読んでください。あなたの答えは元の質問には答えませ
DavidPostill

しかし、近いです。REG ADDを使用すると、これを達成できますか?
TOOGAM

0

リモートコンピューターで環境変数を設定するためにsetxで/ sパラメーターを使用している場合、「リモートレジストリ」サービスがターゲットマシンで実行されている必要があります。そうしないと、「エラー:指定された操作を完了できませんでした。」

(Microsoft にsetxに関するTechNet記事を更新してこの情報を含めるように依頼しました。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.