2014-10-08 39 views
0

我试图做一个计划,将使用批处理脚本在指定的位置或当前位置来计算所有文件夹现在的规模和我写它变成一个.csv文件目录名称太长一批

我跟着计算器

How to list all folder with size via batch file

这个问题,我的代码是

`@echo off 
setlocal disabledelayedexpansion 
set "folder=%~1" 
Set "Value=0" 
if not defined folder set "folder=%cd%" 
    (for /d %%a in ("%folder%\*") do (
    set "size=0" 
    for /f "tokens=3,5" %%b in ('dir /-c /a /w /s /x "%%~fa\*" ^| findstr /b /c:" "')do if "%%~c"=="" set "size=%%~b" 
    setlocal enabledelayedexpansion 
    echo(%%~nxa , !size! 
    endlocal 
))>>foldersize.csv 
endlocal 
exit /b` 

当我运行代码,IA m到处错误

目录名“DIR_NAME”太长

我已经知道,对于一个窗口的路径名的最大长度为260个字符,并且可能是这个错误的原因。

有没有什么办法可以解决这个问题?

预先感谢每个响应。

+0

这个文件夹的路径长度是多少? – foxidrive 2014-10-09 09:07:29

+0

我收到此错误多个文件夹和所有文件夹路径长度超过260 – ajith 2014-10-09 10:06:08

+0

您可以使用'pushd'但我不能在不知道细节重现该问题在这里测试一下想办法解决它。同样,你可能能够缩短路径以获得文件列表 - 没有细节很难说。 – foxidrive 2014-10-09 10:22:12

回答

0

为它工作我看,假设持有信息不具有访问相同的文件有任何问题的物理服务器,就是目录遍历的过程开始于一个盘符映射到该文件夹​​的唯一方法,从路径长度中删除计算机地址和共享名称。