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

Batch file 如何获取子文件夹长度超过260个字符的文件夹的目录列表,batch-file,cmd,directory,size,Batch File,Cmd,Directory,Size,这是我用来生成文件夹大小的代码 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% 我遇到了一个问题,其中一些文件夹的子文件夹太多,并且它会显示“目录名”K:\Really\Long\Path\Blah“太长”(不是实际目录-实际目录长度超过260个字符)。正因为如此

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

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%

我遇到了一个问题,其中一些文件夹的子文件夹太多,并且它会显示“目录名”K:\Really\Long\Path\Blah“太长”(不是实际目录-实际目录长度超过260个字符)。正因为如此,它永远无法获得该文件夹的大小,而我的大小也不正确。

这个答案可能对每个人都没有帮助,但我用它做的就足够了。我使用robocopy来获取大小,因为它实际上不会遍历(?),并为我提供了正确的大小,包括那些路径名过长的文件夹(如果完整路径太长而无法开始,则没有帮助)


你可以试试这种方法。(别担心。你仍然可以把它放在一个.bat脚本中。)
对于/f“usebackq”%%a,在(`powershell”gci-r-path“%target%”中^ |%{$s+=$\.length};'{0:N0}'-f$s`)设置“size=%%a”
不,仍然可以gci:指定的路径、文件名或两者都太长。完全限定的文件名必须少于260个字符,目录名必须少于248个字符。“在(`powershell“gci-r-路径“%target%”中,
for/f“usebackq”%%a如何(`powershell“gci-r-路径“%target%”^ | measure-s length^ |%{{0:N0}'-f$\uuu.sum}`)中设置“res=%a”
?在(
powershell中设置/f“usebackq”%%a如何?”gci-r-路径'K:\AA\Test aaaa Aaaaaaaaaa\aaaa aaaa\Long\looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooodo echo%%a-->这给了我最后一次输出“+”——我没有看到任何其他相关信息被输出
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
)