1

我正在使用 robocopy 命令

robocopy empty_dir super_subfoldered_folder /s /mir
rmdir empty_dir
rmdir super_subfoldered_folder

一次删除文件夹,但在此命令期间robocopy.exe停止工作。我试图从启动主文件夹内至少 50 个子文件夹的路径中删除仍然崩溃。

我尝试将它们重命名为“1”,但 Windows 不允许我超过 100 多个文件夹,而且至少还有 1000 个以上。试图创建新分区 - subst j:。重命名一些文件夹并删除分区,但这需要永远因为它们的数量。尝试过dir /xdel缩短的名称 - > 不起作用。

还有其他方法可以删除这些文件夹吗?

4

2 回答 2

1

Windows 中的文件路径在到达实际的文件系统驱动程序之前要经过几层。结果有两个限制。1) 顶层 API 引入的 MAX_PATH (260) 限制 2) 文件系统实际使用的 32K。由于您已经拥有该路径,因此它显然在文件系统的限制范围内。尝试通过在前面添加“\\?\”来使用路径。这表明 Win32 API 不应解析字符串,而是将其直接传递给文件系统 ( http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85)。 .aspx)。这仅在进行调用的过程是 Unicode 和 64 位(在 64 位系统上)时才有效。否则,必须转换和/或编组字符串,然后您将回到 260 限制。

于 2014-09-27T16:51:49.483 回答
0

Windows 有一个subdirectory depth limit并且它不是很深。

Live Linux distro通过在 cd 或 USB 上启动,如 Ubuntu,并使用 GUI 文件管理器删除树,您可能会获得更好的结果。

于 2014-09-27T16:00:19.153 回答