PR

【簡単】Windowsコマンド実行時、最大文字数260文字以上の長いパスを有効にする

Windows Windows
Windows

Windowsにてプログラムを動かしていると実行するコマンドの文字数やファイルパスが長すぎてエラーが発生することがあります。
これはデフォルトで最大文字数260の制限がかけられているからです。
デフォルトで制限がかけられているいますが260文字以上を許容する設定に変更することが可能です。
今回はその方法について書いていきます。
まずはエラーが発生した場合の例について記載します。

エラーの内容

260文字以上のコマンド実行時

Microsoft Windows [Version 10.0.18362.267]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>mkdir C:\work\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\12345678901234567890123456789012345678
ファイル名または拡張子が長すぎます。

エラーダイアログ

260文字制限エラーダイアログ

エラーメッセージ

ファイル名の長さは、対象のフォルダーに対して長すぎる可能性があります。短いファイル名に変更して再度実行するか、またはより短いパス名の場所に移動して試してください。

260文字制限解除方法

制限解除については「グループポリシーの変更」もしくは「レジストリの変更」のいずれかを対応する必要があります。
※どちらも同じ値を参照しているので片方の変更で両方の値が変わります。

設定変更方法1

グループポリシーを変更する
Windowsの検索より「gpedit」を入力し実行するか、「グループポリシーの編集」検索し実行
ローカルグループポリシーエディター

「コンピューターの構成」→「管理用テンプレート」→「システム」→「ファイル システム」へ移動し「Win32の長いパスを有効にする」をダブルクリック
ローカルグループポリシーエディター

「Win32の長いパスを有効にする」ウィンドウが表示されるので有効のラジオボタンにチェックを付けて「OK」で設定を変更する
ローカルグループポリシーエディター
※設定を未構成にした場合設定は変更されないため無効に戻したい場合は「無効」に変更するか「無効」後に「未構成」にしてください。

設定変更方法2

レジストリを変更する
Windowsの検索より「regedit」を入力し実行
regedit

「コンピューター」→「HKEY_LOCAL_MACHINE」→「SYSTEM」→「CurrentControlSet」→「Control」→「FileSystem」へ移動し「LongPathsEnabled」をダブルクリック
LongPathsEnabled

「DWORD(32ビット)値の編集」ウィンドウが表示されるので「値のデータ」に1を入力し「OK」で設定を変更する
LongPathsEnabled

もしくは下記のコマンドで変更することも可能です。

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" /v "LongPathsEnabled" /t REG_DWORD /d 1 /f
タイトルとURLをコピーしました