この記事は、インテル® デベロッパー・ゾーンに公開されている「Limitation to the length of the System PATH variable」(https://software.intel.com/en-us/articles/limitation-to-the-length-of-the-system-path-variable) の日本語参考訳です。
PATH システム環境変数の長さ制限
概要: この記事は、PATH システム環境変数で使用可能な文字長の制限、オーバーフローの兆候、および回避方法を示します。
詳細: Microsoft* Windows* マシンでは、PATH 環境変数のサイズの上限は 2047 文字 (Microsoft Windows* 7 以降では 4095 文字に変更可能。ただし、システムの再起動が必要。) に制限されています。
この制限は、コマンドライン、ほかのプロセスによって継承される個々の環境変数 (PATH 変数など)、およびすべての環境変数の拡張に適用されます。コマンドプロンプトでバッチファイルを実行する場合は、バッチファイルの処理にもこの制限が適用されます。
PATH システム環境変数のオーバーフローの兆候
PATH サイズ |
Windows* XP/ Windows Server* 2003 |
Windows* 7/Windows* 8/ Windows Server* 2008 |
2048 |
問題なく動作する |
問題なく動作する |
2048 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4096 |
|
|
|
|
|
|
|
回避方法
- システムを再起動します。システムの再起動後、PATH は空ではなくなりますが、2047 文字 (または 4095 文字) に切り捨てられることがあります。
- システムを再起動しても問題が解決しない場合は、次の操作を行ってください。
- c:\windows\system32\regedit.exe を起動します。
- レジストリー エディターで “HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment” に移動します。
- “Path” キーから不要なディレクトリーを削除します。
- システムを差起動します。
注: 例外的にシステムを起動できないことがあります。その場合は、次の操作を行ってください。
- セーフモードでログインします。
- コマンドプロンプトで次のコマンドを実行します。
reg add “HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment” /v Path /t REG_EXPAND_SZ /d ^%SystemRoot^%\system32;^%SystemRoot^% /f
訳者注: インテル® ソフトウェア開発製品では、他の開発ツールとインテル® Parallel Studio XE、インテル® System Studio、インテル® INDE など複数のスイート製品を同じシステムにインストールするとこの制限による問題が生じる可能性があります。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください