Windowsシステム%PATH%がユーザー%PATHの先頭に追加されないようにしますか?


18

システムまたはユーザー固有の環境変数を設定する方法を知っています。

Windows環境変数

現在、問題はPATH、ユーザーPATHに入力した値が自動的にシステムPATHに追加され、それが有効なPATH変数になるように変数が処理されることです。

つまり、私が持っていると言う

(システム) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...

および(USER)PATH=C:\Program Files\Bar\bin%PATH%この値にはないことに注意してください)

このユーザーの結果の環境変数は次のようになります。

(効果的) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...;C:\Program Files\Bar\bin

ただし、非常に特定のOSユーザーアカウントの場合は、PATH環境変数のbar\binディレクトリを、最後ではなくPATHの先頭にする必要があります。

PATHシステムPATH変数に追加する代わりに、そのユーザーの値でユーザーの変数を完全にオーバーライドするようにウィンドウに指示する適切な方法はありますか?

注:バッチファイルからは、明らかにenv.varsを設定および調整できるため、これらはすべて重要ではありません。


USERセクションを無視しないでください。USER Path変数を削除し、希望する順序ですべてをSYSTEM Path変数に入れます。
ケビンフェガン

1
@KevinFegan:まあ、マシン上の一部のサービスはその SYSTEMに依存しPATHおり、この特定のユーザーアカウントは、異なるを持つことでより適切に処理されるためPATHです。私は多くの回避策があることを知っていますが、これを達成するためにOS /レジストリレベルですぐに使えるものがあるかどうかに興味がありました。
マーティン

回答:


3

これがコマンドプロンプトセッションでのみ機能する必要がある場合は、https://stackoverflow.com/questions/17404165/how-to-run-a-command-onに従ってprofile / initバッチファイルを作成し、レジストリで構成します-command-prompt-startup-in-windows。例えば、

reg add "HKCU\Software\Microsoft\Command Processor" /v AutoRun ^
  /t REG_EXPAND_SZ /d "%"USERPROFILE"%\init.cmd" /f

次に、そのバッチファイルのPATHを変更します。例えば、

SET USER_PATH=c:\whatever
SET PATH=%USER_PATH%;%PATH%

0

私は同じ問題を抱えており、これは私のために働いた:

「ユーザーパス変数」は次の方法で取得できます。

>reg query HKCU\Environment /v path

出力(私のマシン上)は次のとおりです。

HKEY_CURRENT_USER\Environment
    path    REG_SZ    C:\Program Files (x86)\GnuWin32\bin

ただし、これを解析して、関連する部分を使用する必要があります。

ここ解決策を読み、マシンでテストしました。


-1

システム変数を無視する方法はわかりませんが、(SETコマンドを介して)セッション変数を使用すると、他の変数よりも優先されることを知っています。そのため、SET PATH=C:\Program Files\Bar\bin命令を使用でき、目的のパスが変数の最初の部分になります。

ここに有効な参照があり、そのページから簡単な期間をここに報告します:

同じ名前の変数がユーザー環境変数とマシン環境変数の両方として保存されている場合、ユーザー変数が優先されます。セッション変数が作成された場合、同じ名前のユーザーまたはマシン環境変数、あるいはその両方よりも優先されます。


これは便利なリファレンスですが、引用した最初の文は一般化です。PATH変数は、例外(特殊なケース)である-ユーザー変数がないではないシステム変数よりも優先されます。「セッション変数」がユーザーとシステムの両方の事前設定変数よりも優先されるという事実は事実ですが、ユーザーにセッション変数を自動的に設定するにはどうすればよいですか?  G-Wizがその質問回答しました。AFAICS、あなたはその回答に何も追加していません。
スコット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.