|
目标:
批处理列出子目录下所有文件的大小总和
批处理代码:(存为size_dir.bat)
@ECHO OFF
for /d %%x in (*) do (
echo ############################################################
echo 子目录: %%x
echo ############################################################
dir /a /s "%%x")
输出结果:
C:\Temp\Batch_Dir>size_dir.bat
############################################################
子目录: 1
############################################################
驱动器 C 中的卷是 SYSTEM
卷的序列号是 xxxx-xxxx
C:\Temp\Batch_Dir\1 的目录
2012-02-03 12:02 <DIR> .
2012-02-03 12:02 <DIR> ..
2008-05-09 14:09 456,072 a.dll
2011-07-21 16:30 5,313 b.zip
2 个文件 461,385 字节
所列文件总数:
2 个文件 461,385 字节
2 个目录 4,951,236,608 可用字节
############################################################
子目录: 2
############################################################
驱动器 C 中的卷是 SYSTEM
卷的序列号是 xxxx-xxxx
C:\Temp\Batch_Dir\2 的目录
2012-02-03 12:12 <DIR> .
2012-02-03 12:12 <DIR> ..
2012-02-03 12:13 <DIR> 3
1997-07-03 00:00 51,200 c.exe
1997-07-03 00:00 2,650 d.gif
2 个文件 53,850 字节
C:\Temp\Batch_Dir\2\3 的目录
2012-02-03 12:13 <DIR> .
2012-02-03 12:13 <DIR> ..
2007-02-16 16:22 10,454 E.RTF
2007-12-01 02:00 42 f.ini
2 个文件 10,496 字节
所列文件总数:
4 个文件 64,346 字节
5 个目录 4,951,236,608 可用字节
问题:
dir /a /s输出只想得到“ 所列文件总数:”之后的一行,如下:
############################################################
子目录: 1
############################################################
2 个文件 461,385 字节
############################################################
子目录: 2
############################################################
4 个文件 64,346 字节
求教有没有解决方法?
目前,批处理最后一行改为:
dir /a /s "%%x" | findstr "所列文件总数:$ 字节$")
结果如下:
############################################################
子目录: 1
############################################################
2 个文件 461,385 字节
所列文件总数:
2 个文件 461,385 字节
2 个目录 4,951,236,608 可用字节
############################################################
子目录: 2
############################################################
2 个文件 53,850 字节
2 个文件 10,496 字节
所列文件总数:
4 个文件 64,346 字节
5 个目录 4,951,236,608 可用字节
怎样改进才能得到需要的输出? |
|