コマンドラインから環境変数を追加、変更、削除する便利な方法を探しています。特に、cmd.exeにいくつかの変数を追加しなければならない状況に陥ります。
誰かが%PATH%
変数を変更する(つまり、新しいディレクトリを追加する)GUI以外の方法を教えてくれて感謝しています。
変更は、cmd
セッションの期間だけでなく、永続的なものでなければなりません。
コマンドラインから環境変数を追加、変更、削除する便利な方法を探しています。特に、cmd.exeにいくつかの変数を追加しなければならない状況に陥ります。
誰かが%PATH%
変数を変更する(つまり、新しいディレクトリを追加する)GUI以外の方法を教えてくれて感謝しています。
変更は、cmd
セッションの期間だけでなく、永続的なものでなければなりません。
回答:
regコマンドを使用してレジストリ変数を直接操作するOld Schoolの方法は、お金にかかっていました。方法は次のとおりです。
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
echo %PATH%
すると、のように結合されていることがわかります<system path>;<user path>
。したがって、最初のコマンドはシステムパスの現在の項目をユーザーパスに表示します(それほど悪くはありません)。2番目のコマンドはユーザーパスの現在の項目をシステムパスに表示します(これは受け入れられません)。
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を送信できます。これにより、ログイン/ログアウトの要件を回避できます。
REG QUERY HKCU\Environment /v PATH
。
現在のcmd.exeプロセスのパスを簡単に変更できます。
PATH c:\MyNewDirectory;%PATH%
PATHコマンドのヘルプについては、HELP PATHをいつでも実行できます。
システム全体に恒久的な変更を加えるには、システムコントロールパネル(別名、[マイコンピューター]-> [プロパティ]-> [詳細]-> [環境変数]、WinXPの場合)を使用する必要があります。そこの設定は、ExplorerシェルのGUIプログラムを含むシステム全体に影響します。
cmd.exe
シェルでこれらの変更のみが必要な場合は、cmd.exeウィンドウを起動するたびに変更を設定するバッチファイルを実行できます。 Phoshiの回答はに言及していますがHKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
、これは優れたオプションのようです-簡単に小さな変更を行い、必要に応じてコマンドラインから再実行します。ただし、これはGUIウィンドウやExplorerシェルには影響しません。
実際、Sysinternalsにはこれを実行できるユーティリティがないことに驚いています。他のPStoolsでもできますか?
これを行う方法はたくさんあります。REG ADDは1つ、またはREG IMPORT(別のコンピューターからエクスポートされた.REGファイルを使用)です。SETX / Mは別です。また、グループポリシーの基本設定を使用してプッシュアウトすることもできます(多数のコンピューターで簡単に実行できる方法)
ここで言及されていない別の考えとして、コントロールパネルを起動して自動入力するオートホットキースクリプトを作成します。すでに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