如何获取子文件夹长度超过 260 个字符的文件夹的目录列表

How to get directory list of a folder with subfolders that are longer than 260 chars

这是我用来生成文件夹大小的代码

for /f "tokens=3,5" %%a in ('
    dir /a /s /w /-c "%target%"
    ^| findstr /b /l /c:"  "
    ') do if "%%b"=="" set "size=%%a"
echo %size%

我 运行 遇到一个问题,对于某些文件夹,子文件夹太多,它会显示 "The directory name "K:\Really\Long\Path\Blah" is too long" (不是实际目录——实际目录超过 260 个字符)。因此,它永远不会获取该文件夹的大小,而我的大小不正确。

这个答案可能对每个人都没有帮助,但对于我使用它来说已经足够了。我使用 robocopy 来获取大小,因为它实际上并没有遍历 (?) 并给了我正确的大小,包括那些路径名太长的文件夹(如果你的 full_path 太长而无法开始)

for /f "tokens=1-10,* delims= " %%a in ('
call robocopy "!full_path!" %TEMP% /S /L /BYTES /XJ /NFL /NDL /NJH ^| find "Bytes"') do (
    echo !full_path!: %%c
    set totalsize=%%c
)