[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]BAT如何计算母文件夹内含多少子文件夹

本帖最后由 chuyizhou 于 2014-3-25 10:01 编辑

大家好!

是这样的,最近工作上出了点状况,temp的文件夹超过65,000了,听说这是FAT16的簇的数量的极限,然后很多进程就挂了。

于是我就想能不能写个BAT脚本,监测这个目录下面的文件夹内含有多少子文件夹。

我的目标文件夹内含有几十万的文件夹,文件夹得名字反正就类似加密码一样,可能就像22evse34t34f44fb34b43(这个不去管他)

我自己用 dir /s /-c 试了一下发现这句命令会检测这个路径下面所有的子文件夹,那我那个路径下面可是有几十万的文件夹 那最后的输出不是要看得眼花了?

举个例子:
G:\>Dir /s /-c "\\x\y\z\Altima\Trades"|Findstr /r "[1-9]*.File(s)"
               0 File(s)              0 bytes
              93 File(s)        3669048 bytes
              46 File(s)         164500 bytes
               3 File(s)           1697 bytes
             142 File(s)        3835245 bytes

G:\>Dir /s /-c "\\x\y\z\Altima"|Findstr /r "[1-9]*.File(s)"
               0 File(s)              0 bytes
               0 File(s)              0 bytes
              93 File(s)        3669048 bytes
              46 File(s)         164500 bytes
               3 File(s)           1697 bytes
               0 File(s)              0 bytes
              65 File(s)        2200730 bytes
               2 File(s)            490 bytes
               2 File(s)            586 bytes
               4 File(s)           1176 bytes
               2 File(s)            864 bytes
              10 File(s)           3298 bytes
               6 File(s)           1562 bytes
               4 File(s)           1374 bytes
               2 File(s)            884 bytes
               6 File(s)           1596 bytes
               4 File(s)           1054 bytes
               2 File(s)            542 bytes
               2 File(s)            878 bytes
               4 File(s)           1048 bytes
               6 File(s)           1464 bytes
               6 File(s)           1668 bytes
               4 File(s)           1062 bytes
              10 File(s)           2732 bytes
               4 File(s)           1148 bytes
               2 File(s)            570 bytes
               4 File(s)           1008 bytes
              13 File(s)         322414 bytes
             306 File(s)        6383393 bytes

就以这个为例,Trades目录下面有3个文件夹,这三个文件夹下面就只有文件,所以就只输出这3个文件夹包涵多少文件和这个文件夹的大小,还有一个总量。
可是如果指定其上一级目录Altima, 那这输出的就有点多了(第二条命令)。

如果我想实现,只输出Trades这个文件夹的大小和所包含的文件夹的数量(不是文件的数量),该怎么写呢?
或者只输出包含的文件夹的总数也行。

希望大家可以帮我一下。谢谢!
白天不懂夜的黑,没用过bat不知道bat的猛。

  1. @echo off
  2. echo 包含的文件夹的总数:
  3. dir /b /s /ad "C:\Test\" | find /c /v ""
  4. pause
复制代码

TOP

回复 2# DAIC


    貌似不对阿,连test下面的子文件夹里面的文件夹也算进去了。有没有办法只计算test里面有几个子文件夹而不包括那些子文件内的子文件夹?
有些绕口啊~
白天不懂夜的黑,没用过bat不知道bat的猛。

TOP

回复 3# chuyizhou


    把2楼代码里面的 /s 去掉

TOP

返回列表