※本ページにはプロモーション(広告)が含まれています
Windows 11のrobocopyで長いパス・Unicode日本語ファイル名エラーが発生する問題を徹底解説
「robocopyでファイルをコピーしようとするとエラーが出て止まる」「日本語ファイル名を含むフォルダをコピーすると文字化けする」「パスが長すぎてコピーできないと言われる」――robocopyを使う管理者やパワーユーザーがよく直面するこれらの問題は、Windows 11特有の設定と深く関わっています。
robocopy(Robust File Copy)はWindowsに標準搭載された強力なファイルコピーツールですが、長いパス(260文字超)とUnicode文字(特に日本語)の取り扱いには特別な対応が必要です。本記事では問題の根本原因から実践的な解決策まで、順を追って詳しく解説します。

この記事でわかること
- robocopyで長いパスエラーが発生するメカニズム
- Unicode・日本語ファイル名でエラーになる理由
- Windows 11での長いパス制限の解除方法(グループポリシー・レジストリ)
- robocopyの正しいオプション指定(/256、/UNICODE等)
- バッチスクリプトでの自動化と文字コード対応
robocopyの長いパス・Unicodeエラーとは――基礎知識
MAX_PATH制限(260文字制限)とは
Windowsには古くからMAX_PATH制限と呼ばれる制限があり、ファイルパス(ドライブ文字+フォルダ名+ファイル名)の合計が260文字を超えるとAPIレベルでエラーが発生します。具体的には「C:\」から始まるパスで260文字(実際はNULL終端を含めると261バイト)が上限です。
深いネスト構造のフォルダや、長いフォルダ名・ファイル名を持つプロジェクトではこの制限に容易に引っかかります。特に日本語フォルダ名・ファイル名は1文字が2バイト以上を消費するため、英語名の半分以下の文字数で制限に達します。
Unicode・日本語ファイル名エラーの原因
robocopyはデフォルトでANSI(Shift-JIS)モードで動作します。UTF-8やUTF-16で保存されたファイル名、特にJIS第2水準以外の漢字・絵文字・特殊記号を含むファイル名では文字化けやエラーが発生します。
Windows 11ではシステムのデフォルトコードページをUTF-8に変更できますが、robocopyとの相互作用で新たな問題が発生するケースもあります。
エラーの種類と意味
| エラーコード | メッセージ | 主な原因 |
|---|---|---|
| ERROR 206 | ファイル名またはディレクトリ名が長すぎます | MAX_PATH超過 |
| ERROR 3 | 指定されたパスが見つかりません | パス長超過・Unicode未対応 |
| ERROR 5 | アクセスが拒否されました | 権限不足またはパス解析失敗 |
| ERROR 123 | ファイル名・ディレクトリ名、ボリュームラベルの構文が間違っています | 不正文字・コードページ不一致 |
| ERROR 1 | 関数が間違っています | Unicodeパスの解析失敗 |
対処法1:Windows 11の長いパス制限を解除する
方法A:グループポリシーエディターで解除(推奨)
Windows 11 Pro/Enterprise/Education向けの方法です。
- 「Windowsキー + R」を押して「gpedit.msc」と入力してEnter
- 「コンピューターの構成」→「管理用テンプレート」→「システム」→「ファイル システム」
- 「Win32 の長いパスを有効にする」をダブルクリック
- 「有効」を選択して「OK」をクリック
- コンピューターを再起動する
再起動後、robocopyは260文字を超えるパスのコピーが可能になります。
方法B:レジストリエディターで解除(Home版対応)
Windows 11 Homeをお使いの場合はこちらの方法を使います。
- 「Windowsキー + R」で「regedit」を入力してEnter(管理者として実行)
- 以下のパスに移動:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem - 右側のペインで「LongPathsEnabled」をダブルクリック
- 値のデータを「0」から「1」に変更して「OK」
- コンピューターを再起動する
「LongPathsEnabled」が存在しない場合は、右クリック→「新規」→「DWORD(32ビット)値」で作成し、名前を「LongPathsEnabled」、値を「1」に設定します。
方法C:PowerShellで設定(コマンドライン)
管理者権限のPowerShellで以下のコマンドを実行します。
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1

対処法2:robocopyコマンドでUnicode・長いパスに対応する
基本:UNCパス形式(\\?\)を使用する
robocopyでは、パスの先頭に「\\?\」を付けることでMAX_PATH制限を回避できます。これはWindows拡張パスと呼ばれる形式で、最大32,767文字のパスに対応します。
robocopy "\\?\C:\ソースフォルダ" "\\?\D:\コピー先フォルダ" /E /COPYALL
ただし、「\\?\」形式は相対パス・ドットパス(.および..)・環境変数展開が使えないため、絶対パスのみで記述する必要があります。
推奨オプション:日本語・長いパス対応
以下のオプションを組み合わせることで、ほとんどのケースに対応できます。
robocopy "\\?\C:\ソース" "\\?\D:\コピー先" /E /COPYALL /256 /LOG:"C:\robocopy_log.txt" /UNICODE /TEE /NP /R:3 /W:5
| オプション | 意味 | 長いパス・Unicode対応への効果 |
|---|---|---|
| /256 | 256文字パス制限を無効化 | MAX_PATH回避(robocopy内部制限) |
| /UNICODE | Unicodeモードでログ出力 | 日本語ファイル名のログ文字化け防止 |
| /E | 空フォルダも含めサブフォルダをコピー | 深い階層構造に対応 |
| /COPYALL | 全属性・ACL・タイムスタンプをコピー | メタデータ保全 |
| /LOG:ファイル | ログをファイルに出力 | エラー追跡・デバッグ |
| /R:3 /W:5 | 失敗時3回リトライ、5秒待機 | 一時的エラー自動回復 |
バッチスクリプトでの文字コード設定
バッチファイル(.bat)でrobocopyを実行する場合、コマンドプロンプトのコードページをUTF-8に設定することで日本語の扱いが改善されます。
@echo off
chcp 65001
robocopy "\\?\C:\日本語フォルダ\データ保存場所" "\\?\D:\バックアップ\2026年04月" /E /256 /UNICODE /LOG:"C:\logs\backup_log.txt" /TEE /R:3 /W:5
pause
chcp 65001はコードページをUTF-8(65001)に切り替えるコマンドです。これにより日本語を含むパスとファイル名の表示が正しくなります。
PowerShellからrobocopyを実行する場合
PowerShellはデフォルトでUnicodeを扱えるため、PowerShell経由でrobocopyを実行すると日本語ファイル名の問題が軽減されます。
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
robocopy "\\?\C:\ソース" "\\?\D:\コピー先" /E /256 /UNICODE /LOG:"C:\logs\robocopy.log" /R:3 /W:5
対処法3:特殊なケースへの対応
ネットワークドライブ・UNCパス上のファイル
ネットワーク共有(\\Server\Share\…)のファイルをコピーする場合、UNCパスでも同様に「\\?\UNC\」形式を使うことで長いパス制限を回避できます。
robocopy "\\?\UNC\ServerName\ShareName\日本語フォルダ" "\\?\D:\ローカルバックアップ" /E /256 /UNICODE
OneDrive・SharePoint同期フォルダのパス
OneDriveやSharePointの同期フォルダはパスが非常に長くなりがちです。組織名・サイト名・ライブラリ名が連なるため260文字を超えることが多くあります。長いパス制限の解除に加え、OneDrive同期設定でフォルダの構造をシンプルにすることも検討してください。
Gitリポジトリのコピー
node_modules等を含むGitリポジトリは深いネストになりやすい典型例です。
robocopy "\\?\C:\projects\my-app" "\\?\D:\backup\my-app" /E /256 /XD ".git" "node_modules" /UNICODE /LOG:"C:\logs\git_backup.log"
/XDオプションで不要なフォルダを除外することで、コピー時間の短縮とエラー発生率の低減ができます。

対処法4:エラーログの確認と分析
/LOGオプションで出力したログファイルを確認することで、どのファイルでエラーが発生したか特定できます。
robocopy "\\?\C:\ソース" "\\?\D:\コピー先" /E /256 /UNICODE /LOG+"C:\logs\robocopy_detail.log" /TEE /R:0 /W:0
/R:0 /W:0でリトライを無効化することで、エラーファイルの一覧を素早く取得できます。ログ確認後、問題のあるファイルを個別対応します。
この記事に関連するおすすめ商品
外付けSSD(高速バックアップ用)
約8,000円〜
robocopyバックアップ先として最適・USB 3.2対応
NASストレージ(ネットワーク経由バックアップ)
約25,000円〜
robocopyとの組み合わせで自動バックアップ環境構築
※ 価格は変動します。最新価格はリンク先でご確認ください
FAQ
Q. /256オプションを付けても260文字超のパスがコピーできません
robocopyの/256オプションは内部的な制限を緩和しますが、OSのMAX_PATH制限が有効だと依然としてエラーが発生します。グループポリシーまたはレジストリでLongPathsEnabledを1に設定し、再起動後に試してください。両方の対処が必要です。
Q. chcp 65001に設定するとrobocopyが動かなくなりました
一部の古いrobocopyバージョンはUTF-8コードページ(65001)と相互作用で問題が起きることがあります。その場合はchcp 932(Shift-JIS)に戻してPowerShellからrobocopyを実行する方法を試してください。PowerShellはUnicodeを内部処理するため、コードページ切り替えが不要なケースがあります。
Q. ログファイル自体が文字化けしています
/UNICODEオプションを追加することでログファイルをUTF-16LE形式で出力します。メモ帳やVSCodeで開く場合、文字コードをUTF-16として開いてください。あるいはPowerShellでGet-Content -Encoding Unicode "C:\logs\robocopy.log"として読み込むと文字化けなく確認できます。
Q. エラーが出たファイルだけを再コピーするにはどうすればいいですか?
robocopyは差分コピーが得意です。同じコマンドを再実行すると、コピー済みのファイルはスキップされ、エラーになったファイルのみ再試行します。/MIRオプション(ミラーリング)と組み合わせると、コピー先の整合性を保ちながら差分のみを更新できます。
Q. 管理者権限なしでrobocopyを使えますか?
通常のファイルコピーは管理者権限なしで可能ですが、/COPYALLオプション(セキュリティ属性コピー)や/B(バックアップモード)オプションを使うには管理者権限が必要です。グループポリシー・レジストリの変更も管理者権限が必要です。
まとめ
Windows 11でrobocopyを使った際の長いパスエラーとUnicode日本語ファイル名エラーは、OSレベルとrobocopyコマンドレベルの両方で対策が必要です。
解決の優先順位は明確です。まずWindowsの長いパス制限を解除(グループポリシーまたはレジストリのLongPathsEnabled=1)し、次にrobocopyコマンドに「\\?\」プレフィックス・/256・/UNICODEオプションを追加する。バッチスクリプトで実行する場合は「chcp 65001」でUTF-8コードページを設定するか、PowerShellから実行することで日本語の問題を回避できます。
これらの対策を組み合わせることで、日本語ファイル名を含む深いフォルダ構造でも安定したファイルコピーが実現します。定期バックアップのスクリプトに組み込む際は、ログ出力と/R・/Wオプションによるリトライ設定も必ず入れておきましょう。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!