在不使用開關的情況下運行 robocopy.exe 備份 C:\Users\ 資料夾後/xj
,我最終得到了一個太長的遞歸目錄。例如,如果您執行,dir /b /s
您將收到以下錯誤:
目錄名稱 C:\Users\ ... \AppData\Local\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application資料\應用程式資料太長。
我嘗試刪除它,rmdir "Application Data" /s
但收到錯誤“文件名太長”
我看過其他解決方案,但我想我也許可以使用該工具造成的問題到解決它。
答案1
使用 建立一個空目錄mkdir empty
,然後使用robocopy empty\ "Application Data\" /mir"
它將刪除整個目錄樹。然後發出 armdir empty
和rmdir "Application Data
進行清理,就完成了。
答案2
您可以cd
深入到目錄中刪除下面的內容,然後cd
再次返回頂部並刪除剩餘的內容。
如果這不起作用並且您仍然遇到困難,請下載免費示範我的 Hamilton C shell 版本(完全披露:我是作者)並使用rm
它附帶的實用程式使用-r
(遞歸)和-x
(刪除任何內容)選項。
rm -rx directoryname
我rm
用的是新的長 Unicode 檔名內部格式化,允許它操作最多 32K 字元的路徑,這樣應該就可以了。
如果您發現問題也涉及權限,您可能需要使用sudo
或su
提升,例如
sudo rm -rx directoryname
在非常頑固的情況下,您可能會受到阻止存取的 ACL 的阻礙,例如cacls
報告Everyone:(DENY)
。在這種情況下,您可能需要刪除該 ACE(存取控制條目)。
cacls directoryname /e /r everyone
最後,我真的希望這能有所幫助。我的伺服器日誌告訴我人們正在下載我的軟體來嘗試這個,我希望它能夠工作。如果您遇到沒有成功的情況,我希望您能聯繫我,以便我可以調試原因並使其正常工作。無法刪除的事情經常發生,我希望涵蓋所有情況。
答案3
您也可以嘗試以下其中一項;
決議一:使用自動產生的 8.3 名稱來存取文件
決議2:重新命名或移動深層資料夾
決議3:將磁碟機對應到路徑結構中的資料夾 將磁碟機對應到目標檔案或資料夾的路徑結構中的資料夾。該方法縮短了虛擬路徑。
決議4:使用與資料夾一樣深的網路共用如果解決方案 1、2 和 3 不方便或無法解決問題,請在資料夾樹中建立盡可能深的網路共用,然後重命名資料夾透過存取共用。
決議5:使用可以遍歷深層路徑的工具