システムのプロパティ
この環境変数は大きすぎます。このダイアログでは、最大2047文字の値を設定できます。
多くのソフトウェアを使用/使用しており、その結果、PATHが増加しました。新しいパスを追加しようとすると、上記のメッセージが表示されます。回避策として、ユーザーパスを編集していますが、編集しないことをお勧めします。
Microsoftのドキュメントには、Windowsの環境変数は32,767文字( link )に制限されていると記載されていますが、そのような長い変数の作成方法については記載されていません。
ここでの問題は、Windowsが提供するツールすべてに制限があることです。
Setおよびsetxコマンドは、値を1023文字に切り捨てます。
レジストリで_HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
_に直接設定すると、regeditは入力された文字列を2047文字より後に切り捨てるため、失敗します。
したがって、回避策を使用する必要があります。
短いフォルダ名を使用してください
_dir /x /ad
_を使用すると、このような名前が表示される場合があります。次の例は、私のコンピュータで、フォルダProgram Files (x86)
が_PROGRA~2
_に置き換えられることを示しています。
埋め込まれた環境変数を使用します
あなたが持っている場合:
_C:\this_is_a\long_path\that_appears\in_multiple_places\subdir1
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir2
_
次に、次のような新しい環境変数を作成できます。
_SET P1=C:\this_is_a\long_path\that_appears\in_multiple_places
_
その後、元のパスは
_%P1%\subdir1
%P1%\subdir2
_
余分なパスを含む新しい変数、たとえばNEWPATH
を作成してPATHを2つに分割し、PATH変数に_;%NEWPATH%
_を追加することもできます。
setxコマンド の使用は避けてください。埋め込まれた環境変数を直接解決し、結果の文字列が再び長すぎるためです。
PowerShellスクリプトを使用してPATHを設定します
PowerShellはWindows APIを直接呼び出すため、環境変数の理論上の制限である32,767文字に近づくことができます。
スクリプトには、次のようなコマンドを含めることができます。
_[Environment]::SetEnvironmentVariable("Path", $longpath, "Machine")
_