2009-12-06 21:52:22 +0000 2009-12-06 21:52:22 +0000
226
226

コマンドプロンプトからWindowsの環境変数を設定して取得したいのですが?

コマンドプロンプトから環境変数を設定して、グローバルにアクセスできるようにしたいのですが(例えば、System -> Environment Variablesに行けば表示されるはずです)

setコマンドを使うと、新しいcmdセッションではアクセスできません。(https://superuser.com/questions/13783/)_ - Windowsのバッチスクリプト経由でスポーンされたシェルに複数の環境変数を設定する _

回答 (6)

260
260
260
2009-12-06 21:58:09 +0000

環境変数をグローバルにアクセスできるようにするには、レジストリに設定する必要があります。このページ]

set NEWVAR=SOMETHING

とすれば、現在のプロセス空間に設定していることに気がついたと思います。

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

setx NEWVAR SOMETHING

setxはWindows 7に組み込まれていますが、古いバージョンでは Windows Resource Kit をインストールした場合にのみ使用できます。

36
36
36
2014-08-26 10:37:26 +0000

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

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

11
11
11
2017-02-08 14:54:39 +0000
setx program "C:\Program Files" /M

/M は @Minh Chau のようなユーザレベルの代わりにシステム環境変数のレベルを設定します

テスト

RESTART コマンドライン(コマンドラインを再起動しないと環境変数は動作しません)

2
2
2
2017-03-09 05:06:52 +0000

システム変数は、CMDとレジストリで設定することができます。reg query “HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\ControlSession Manager\Environment” /v PATH*

All common used CMD code and system variables is given here.

CMD を開いて Set

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

2
2
2
2018-11-13 19:42:06 +0000

上記のようにsetx env var [/M]を使うことができます。もしそれが有効にならない場合は、環境変数をリフレッシュするために refreshenv を使うことができます。これを行うには、コンピュータや explorer.exe やコマンドプロンプトを再起動する必要はありません。

編集: どうやら refreshenv は Windows では自然には使えないようですので、ここにソースがあります。 https://pastebin.com/1fJqA0pT RefreshEnv.cmd として保存して、PATH 環境変数に含まれるフォルダに置いてください。

0
0
0
2017-05-18 19:35:20 +0000

setxで/sパラメータを使用してリモートコンピュータ上で環境変数を設定する場合、ターゲットマシン上で “Remote Registry "サービスが実行されていないと "ERROR: The specified operation could not be completed.”

(この情報を含むようにMicrosoftに TechNet article on setx を更新するように依頼しました)

関連する質問

3
19
16
10
28