web-dev-qa-db-ja.com

システム対ユーザーPATH環境変数... winmergeは、ユーザーPATHにパスを追加した場合にのみ機能します

C:\Program Files (x86)\WinMergeをUser PATH変数に追加した場合(コンピューターを右クリック->詳細なシステム設定->環境変数)、新しいシェルを開くとWinmergeU.exeが認識されません。そのパスをSystem PATH変数に追加すると、代わりにWinmergeU.exeが正しく認識されます。ユーザーとシステムの間に違いはありませんでしたが、システムに設定すると、すべてのユーザーに表示されますが、ユーザーPATHはローカルです。私は何か間違っていますか?

編集1:

以下では、最初にC:\Program Files (x86)\WinMergeがシステムPATH変数に追加された場合(ただし、ユーザーには追加されない)を確認し、次にユーザーPATH変数(ただし、システムではない)。最初のケースでは、Winmergeウィンドウが正しく起動され(表示されていません)、ご覧のとおり、echo%PATH%コマンドでパスが表示されます。 2番目のケースでは起動せず、パスはecho%PATH%で表示されません。 (これらのスクリーンショットを撮る前に明確にOKで確認し、環境変数ウィンドウを閉じ、PATHを変更してOKを押した直後に新しいcmdを開いたことに注意してください)。この問題は、ここでの私の質問に関連している可能性があります( エコー%PATH%はシステムのみに拡張されますか、それともユーザー変数にも拡張されますか? )。

SYSTEM

USER

34
Millemila

何か問題が発生しているか、マシンの環境に問題がある必要があります。ユーザーPATH環境変数を追加すると、新しいプロセスの環境にマージされます。

更新:おそらくこれは 環境変数に関するMSDNトピックのコメント が適切かもしれません:

Windows Server 2003で、システムPATHが1920文字を超えると、システムの完全なPATHが(それよりも大きい場合でも)プロセスのPATH変数。

43
David Heffernan

Windows 7では、システムパスがバックスラッシュで終わっていないことも確認してください。存在する場合、通常どおりにシステムパスにUSER PATHが追加されますが、改行後に物事が中断されます。後者の場合、単純なコマンド "path"および "echo%PATH%"は2つの異なる出力を出力します。

0
coredump