RMDIR 不删除大于 255 长度的嵌套目录路径

RMDIR does not delete nested directories path greater than 255 length

我在批处理文件中使用以下命令,并通过服务器中的任务调度程序 运行 删除大部分嵌套 files/folders 但是当路径长度超过 255 时,它不会删除那些 files/folders。 RMDIR 是这个问题吗,还有其他选择吗,Robocopy Delete?有人遇到过这个问题并且 robocopy 能够为他们解决这个问题,如下所示?

RMDIR "Path-location" /S /Q -- Does not delete files/folder > 255 length

Robocopy:您需要在执行以下命令之前创建空文件夹:

robocopy "C:\empty" "C:\Test Folder" /purge
rmdir "C:\Test Folder"  // Once all files/folders are deleted now remove your parent/root directory

这是正常行为。确切地说,该限制定义为 260 个字符 (source)。您有多种选择来规避此限制:

  1. 您可以通过 adding/setting 将 REG_DWORD 类型的注册表值 HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled 提高到 65535 个字符到 1。这从 Windows 10,版本 1607 (read more) 开始有效。此更改后重新启动计算机。

  2. 您可以将 robocopy/PURGE 参数结合使用,以将空文件夹同步到包含您已经发现的长文件路径的文件夹。如果您不想删除所有内容,而只想删除某些文件,这可能会变得复杂。

  3. 可以用UNC paths来描述长路径。变化

    C:\very\long\...\path
    

    \?\C:\very\long\...\path