如何获取子文件夹长度超过 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
)
这是我用来生成文件夹大小的代码
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
)