web-dev-qa-db-ja.com

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

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

Windows Environment Variables

ここで問題となるのは、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環境変数にはPATHの最後ではなく最初にbar\bindirectoryを含める必要があります。

システムに追加するのではなく、ユーザーのPATH変数をそのユーザーの値で完全に上書きするようにWindowsに指示する適切な方法はありますかPATHvariable?

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

20
Martin

これがコマンドプロンプトセッションでのみ機能する必要がある場合は、プロファイル/初期化バッチファイルを作成し、レジストリで構成します。 https://stackoverflow.com/questions/17404165/how-to-run-a -command-on-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%
3
G-Wiz

私は同じ問題を抱えていました、そしてこれは私のために働きました:

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

>reg query HKCU\Environment /v path

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

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

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

私はここで解決策を読みました ここ そして私のマシンでテストしました。

0
user2442366