web-dev-qa-db-ja.com

cmd.exeの(システム全体の)環境変数の設定または変更

コマンドラインから環境変数を追加、変更、削除する便利な方法を探しています。特に、cmd.exeにいくつかの変数を追加しなければならない状況で、ときどき自分を見つけます。

誰かが私にGUI以外の変更方法(つまり、新しいディレクトリを追加する方法)を見せてくれたら、私は感謝します%PATH%変数。

変更は、cmdセッションの期間だけでなく、永続的である必要があります。

13

Regコマンドを使用してレジストリー変数を直接操作するオールドスクールの方法は、お金にかかっていました。方法は次のとおりです。

reg add HKCU\Environment /v PATH /d "%addonpath%;%path%" /f

これを、次のようなapath.batという1行のスクリプトに入れます。

@echo off
reg add HKCU\Environment /v PATH /d "%~dp0;%path%" /f

次に、指定する必要があるのは、スクリプトを呼び出してダイヤルインするときに追加する新しいディレクトリのパスだけです。

例:apath.bat%addonpath%

ヒンチは正しいですが。 Vista以上を使用している場合の最適な方法は、次の場合にマシンを節約できるregコマンドを使用してレジストリを直接操作するリスクなしに環境変数を伝播できるように設計されたSETXコマンドを使用することです。 ENV変数をその場で使用するのに十分なだけ操作します。

8
user51259

Setxを使用できます。

ユーザー変数:

SETX PATH "%PATH%;C:\MyDir"

システム変数:

SETX PATH "%PATH%;C:\MyDir" /M
15
user16765

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorunレジストリキーを使用してバッチファイルを指定すると、難解な設定ダイアログを掘り下げることなく、半永久的な変更を行うことができます。

1
Phoshi

GUIを使用しない場合(コントロールパネル、システム、詳細設定、環境変数、PATHなど)、REGを使用してHKCU\Environment\PATHを設定できます。

  • 更新%PATH%
  • REG ADD HKCU\Environment /v PATH /t REG\_EXPAND\_SZ /d "%PATH%" /f

/fは既存の値を強制的に上書きするため、質問にインタラクティブに回答する必要はありません。

編集:%PATH%を引用する必要があります。

編集:これを有効にするには、おそらく再起動または再ログインが必要になることにも注意してください。 GUIで変更すると、すぐに有効になります(新しいcmd.exeセッションの場合)。

参照: http://support.Microsoft.com/kb/104011

リファレンスに記載されているように、コードを記述したい場合は、WM_SETTINGCHANGEを送信できます。これにより、ログイン/ログアウトの要件を回避できます。

1
opello

現在のcmd.exeプロセスのパスを変更するのは簡単です。

PATH c:\MyNewDirectory;%PATH%

PATHコマンドのヘルプについては、いつでもHELP PATHを実行できます。

0
jdigital

本当に永続的な、システム全体の変更の場合は、システムコントロールパネル(別名[マイコンピュータ]-> [プロパティ]-> [詳細設定]-> [WinXPの場合は環境変数])を使用する必要があります。そこでの設定は、エクスプローラシェルのGUIプログラムを含むシステム全体に影響します。

cmd.exeシェルでこれらの変更のみが必要な場合は、cmd.exeウィンドウを起動するたびに変更を設定するバッチファイルを実行できます。 Phoshi's answerHKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorunに言及しています。これは優れたオプションのようです-小さな変更を簡単に行い、必要に応じてコマンドラインから再実行できます。ただし、これはGUIウィンドウやエクスプローラシェルには影響しません。

Sysinternals には、これを行うための有能なユーティリティがないことに本当に驚いています。多分別の PStools がそれを行うことができますか?

0
quack quixote

これを行う方法はたくさんあります。 REG ADDは1つ、またはREG IMPORT(別のコンピューターからエクスポートされた.REGファイルを使用)です。 SETX/Mは別です。また、グループポリシーの基本設定を使用してプッシュすることもできます(多数のコンピューターで最も簡単な方法)

0
Skatterbrainz

ここで言及されていない別の考えとして、コントロールパネルを起動して入力するautohotkeyスクリプトを作成します。すでにAHKユーザーであれば、うまく機能します:-)

https://autohotkey.com/board/topic/63210-modify-system-path-gui/

また、hklm/system/currentcontrolset001/control/session manager/environment:path keyの編集についてはどうですか?ただし、同じキーはhklm/system/currentcontrolset002およびhklm/system/currentcontrolsetの下にあります。これは正しいと思われます: https://stackoverflow.com/questions/3304463/how-do-i-modify-the-path-environment-variable-when-running-an-inno -setup-install

0
Justin Goldberg