运行 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 Data\Application Data\Application Data 太长。
我尝试删除它,rmdir "Application Data" /s
但收到错误“文件名太长”
我研究过其他解决方案,但我认为我可以使用造成问题解决它。
答案1
使用 创建一个空目录mkdir empty
,然后使用robocopy empty\ "Application Data\" /mir"
删除整个目录树。然后发出rmdir 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
您还可以尝试以下方法之一;
解决方案 1:使用自动生成的 8.3 名称访问文件
解决方案 2:重命名或移动深层文件夹
解决方案 3:将驱动器映射到路径结构中的文件夹 将驱动器映射到目标文件或文件夹路径结构中的文件夹。此方法缩短了虚拟路径。
解决方案 4:使用与文件夹一样深的网络共享如果解决方案 1、2 和 3 不方便或不能解决问题,请创建在文件夹树中尽可能深的网络共享,然后通过访问共享来重命名文件夹。
解决方案 5:使用可以遍历深度路径的工具