コマンドラインから環境変数を追加、変更、削除する便利な方法を探しています。特に、cmd.exeにいくつかの変数を追加しなければならない状況で、ときどき自分を見つけます。
誰かが私にGUI以外の変更方法(つまり、新しいディレクトリを追加する方法)を見せてくれたら、私は感謝します%PATH%
変数。
変更は、cmd
セッションの期間だけでなく、永続的である必要があります。
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変数をその場で使用するのに十分なだけ操作します。
Setxを使用できます。
ユーザー変数:
SETX PATH "%PATH%;C:\MyDir"
システム変数:
SETX PATH "%PATH%;C:\MyDir" /M
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
レジストリキーを使用してバッチファイルを指定すると、難解な設定ダイアログを掘り下げることなく、半永久的な変更を行うことができます。
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を送信できます。これにより、ログイン/ログアウトの要件を回避できます。
現在のcmd.exeプロセスのパスを変更するのは簡単です。
PATH c:\MyNewDirectory;%PATH%
PATHコマンドのヘルプについては、いつでもHELP PATHを実行できます。
本当に永続的な、システム全体の変更の場合は、システムコントロールパネル(別名[マイコンピュータ]-> [プロパティ]-> [詳細設定]-> [WinXPの場合は環境変数])を使用する必要があります。そこでの設定は、エクスプローラシェルのGUIプログラムを含むシステム全体に影響します。
cmd.exe
シェルでこれらの変更のみが必要な場合は、cmd.exeウィンドウを起動するたびに変更を設定するバッチファイルを実行できます。 Phoshi's answer はHKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
に言及しています。これは優れたオプションのようです-小さな変更を簡単に行い、必要に応じてコマンドラインから再実行できます。ただし、これはGUIウィンドウやエクスプローラシェルには影響しません。
Sysinternals には、これを行うための有能なユーティリティがないことに本当に驚いています。多分別の PStools がそれを行うことができますか?
これを行う方法はたくさんあります。 REG ADDは1つ、またはREG IMPORT(別のコンピューターからエクスポートされた.REGファイルを使用)です。 SETX/Mは別です。また、グループポリシーの基本設定を使用してプッシュすることもできます(多数のコンピューターで最も簡単な方法)
ここで言及されていない別の考えとして、コントロールパネルを起動して入力する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