标题: [数值计算] 批处理如何获取每个子文件夹里的文件数量和文件大小总和 [打印本页]
作者: 是抠脚小仙女 时间: 2018-7-11 08:48 标题: 批处理如何获取每个子文件夹里的文件数量和文件大小总和
本帖最后由 pcl_test 于 2019-3-16 21:40 编辑
bat 子目录文件大小和
分别查询
1.根目录的文件数,文件大小和
2.子目录的文件数,文件大小和
可以帮我看下问的子目录查询的时候哪里出了错吗?
一直显示查询不到文件
作者: 是抠脚小仙女 时间: 2018-7-11 09:03
不好意思,上面的代码贴错了- pushd %~dp0
- @echo off
- setlocal enabledelayedexpansion
-
- rem 查询根目录
- set /a count = 0
- set /a file1size = 0
-
- for /f %%i in ('dir /b /a-d') do (
- set /a count=count+1
- set /a file1size=file1size+%%~zi
- )
- echo 根目录
- echo %cd% 文件数:!count!个、文件大小和:!file1size!个字节
-
- rem 查询子目录
- set /a counter = 0
- set /a file2size = 0
-
- for /f %%i in ('dir r* /b/a') do (
- if exist %%a (
- set /a counter=counter+1
- set /a file2size = file2size+%%~za
- )
- )
- )
- echo 子目录
- echo %cd% 文件数:!counter!个、文件大小和:!file2size!个字节
-
- popd
- pause
复制代码
这个才是正确的
作者: yhcfsr 时间: 2018-7-11 09:27
本帖最后由 yhcfsr 于 2018-7-11 09:33 编辑
第21行,循环变量%%a从哪里来的,不应该是%%i??
而且你这脚本本身就有很多问题:
计算大小之和时,如果数字超过4G,计算就会出错;
第20行,dir这样用不会扫描到目录吗??
第21行,dir扫描到的循环变量肯定是存在的(除非在脚本运行期间,对目录进行了更改),我认为没什么必要加判断;
涉及路径的变量,最好是加上双引号,防止路径中有空格出错
作者: 是抠脚小仙女 时间: 2018-7-11 10:17
回复 3# yhcfsr
刚开始接触批处理,是自己做练习用的,所以计算大小不会超过4G,
21行%%a不好意思,是我刚才在修改的时候忘记该回去了,确实是%%i
我原来的想法是判断是否为文件,,是的话就进入计算,被你这么一说我也怀疑了自己的想法。
那你可以给我提供一下思路吗?我被卡在这里想了好久。
不知道判断为文件夹的时候如何进入子目录进行计算。
因为是新手还不是很懂批处理
作者: 是抠脚小仙女 时间: 2018-7-11 10:18
回复 3# yhcfsr
还是说有命令可以直接跳过当前目录进入子目录?
作者: yhcfsr 时间: 2018-7-11 10:19
回复 4# 是抠脚小仙女
你可加论坛的QQ群或者看我签名,加我好友,以便实时沟通.
作者: 是抠脚小仙女 时间: 2018-7-11 10:33
回复 6# yhcfsr
我不能实时沟通。。。我上班时间只能开网页,不能上qq之类的聊天软件,但是我会加你的,一会午休了就加你。
作者: 是抠脚小仙女 时间: 2018-7-11 12:12
回复 3# yhcfsr
大佬,加你QQ没反应呀。。
作者: 是抠脚小仙女 时间: 2018-7-11 14:05
回复 6# yhcfsr
我琢磨出来了!查询当前目录的所有目录,再把查询到的目录当作路径进行查询!!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |