Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Win7 刪除檔案提示「檔名過長」無法刪除?.bat 腳本繞過 260 字元限制

編輯:Windows 7 系統介紹

Windows API 歷史限制導致完整路徑超過 260 字元 (MAX_PATH) 的檔案/資料夾無法在檔案總管正常刪除、複製、重命名。利用批次檔 (.bat) 呼叫 DEL/RD 命令配合 \\?\ 延長路徑前綴 (或直接使用短檔名機制) 可繞過限制強制清除。

新建文字文件

快速建立刪除腳本

  1. 桌面右鍵 → 新增 → 文字文件,命名 ForceDeleteLongPath.bat。
  2. 用記事本開啟,貼入以下程式碼:
@echo off
setlocal enabledelayedexpansion
set "target=%~1"
if "%target%"=="" (
    echo 請將要刪除的檔案/資料夾拖曳到此批次檔圖示上
    pause
    exit /b
)
:: 使用延長路徑前綴 \\?\ 繞過 260 字元限制
set "longpath=\\?\%target%"
if exist "%longpath%\" (
    echo 偵測到資料夾,遞迴刪除中...
    rd /s /q "%longpath%"
) else if exist "%longpath%" (
    echo 偵測到檔案,強制刪除中...
    del /f /a /q "%longpath%"
) else (
    echo 找不到指定路徑: %target%
)
echo 完成。
pause
  1. 存檔。使用時:將無法刪除的檔案/資料夾**直接拖曳到此 .bat 檔案圖示上**,自動執行強制刪除。
另存為 .bat

原理解析

  • \\?\ 前綴指示 Windows 物件管理器停用路徑剖析,直接傳遞給檔案系統驅動程式,支援最高 32,767 字元路徑。
  • RD /S /Q:安靜模式遞迴刪除資料夾及所有子項。
  • DEL /F /A /Q:強制刪除唯讀/隱藏/系統屬性檔案,安靜模式。
  • 原文提供的 DEL /F /A /Q ?%1 RD /S /Q ?%1 為簡化版,缺乏路徑判斷與延長前綴,實戰成功率較低,建議使用上方完整版。

替代方案:第三方工具 (更直觀)

  • Unlocker / LockHunter: 右鍵整合,釋放檔案鎖定並支援長路徑刪除。
  • 7-Zip / WinRAR: 壓縮軟體檔案管理器支援長路徑瀏覽、刪除、重命名。
  • Total Commander / FreeCommander: 雙窗格檔案管理器原生支援長路徑操作。
  • PowerShell: Remove-Item -LiteralPath "C:\超長路徑" -Recurse -Force (PowerShell 內建支援長路徑)。

根治:啟用 Win10/Win11 長路徑支援 (不適用 Win7)

Win7 核心無法透過群組原則/登錄表啟用長路徑支援 (需 NT 核心 10.0+)。若頻繁遇到長路徑問題,建議:
1. 縮短資料夾命名層級/長度。
2. 使用 subst 將深層路徑掛載為虛擬磁碟機代號 (如 subst Z: "C:\超長路徑\專案\資料\") 操作。
3. 規劃遷移至 Win10/11 LTSC 並啟用「啟用 Win32 長路徑」群組原則。

備妥 ForceDeleteLongPath.bat 放在桌面/工具箱,遇到「檔名過長」拖曳即刪,是 Win7 環境下最輕量、無安裝、成功率最高的解法。

Copyright © Windows教程網 All Rights Reserved