[顽强生存着的DOS] 批处理统计文件夹内的所有文件的数量和总大小的bat_DOS/BAT (转

发信人: southwest (Never stop the beat), 信区: DOS
标 题: 批处理统计文件夹内的所有文件的数量和总大小的bat_DOS/BAT (转
发信站: 水木社区 (Fri Jun 30 08:54:29 2017), 站内

发信人: NFS (NOT FOR SALE), 信区: loser
标 题: 批处理统计文件夹内的所有文件的数量和总大小的bat_DOS/BAT
发信站: 水木二站 (Thu Jun 22 10:09:10 2017), 站内

来源:http://ift.tt/2upwWWc

摘要: 本文讲的是批处理统计文件夹内的所有文件的数量和总大小的bat_DOS/BAT,
我最近电脑不知道为什么磁盘空间会慢慢的变小,而且过一段时间之后,又会有两三GB
的空间被释放出来,使用我想监控下,看看是那个文件夹下产生的文件来占用我的存储
空间,我想按层监视,最终找出原因。 从网上找个命令行显示指定文件夹目录的大小
的批处理

我最近电脑不知道为什么磁盘空间会慢慢的变小,而且过一段时间之后,又会有两三GB
的空间被释放出来,使用我想监控下,看看是那个文件夹下产生的文件来占用我的存储
空间,我想按层监视,最终找出原因。

从网上找个命令行显示指定文件夹目录的大小的批处理程序,但是发现并不太尽人意,
总感觉不是很适合我的使用;

第一个程序,可以显示某个文件夹下的文件大小,但是我想按层显示,却不能满足我的
要求,程序如下:

@echo off
echo.
set /p dirPath=please input folder path:
set /a s=1024*1024*1024
for /f "tokens=3 delims= " %%i in ('dir /s /a /-c "%dirPath%" ^|findstr 个文
件') do (set z=%%i)
echo.
echo 文件夹:%dirPath%
set d=bit
if %z% gtr 1024 set /a "z>>=10"&set d=KB
if %z% gtr 1024 set /a "z>>=10"&set d=MB
if %z% gtr 1024 set /a "z>>=10"&set d=GB

echo 的总大小是:%z% %d%&echo.
if %z% LSS %s% echo 该文件夹内容小于1G
pause>nul
第二个程序的,可以显示当前文件夹下的层级目录,但没有循环每一次下文件夹的大
小,程序如下:

@echo off
setlocal enabledelayedexpansion
(for /d %%a in (C:\KuGou\*) do (
set/a n=z=0
pushd "%%a"
for %%b in (*.*.) do (
set/a n+=1,z+=%%~zb
)
set/a "z>>=20"
popd
echo;%%a [!n!个!z!M]
))>统计结果.txt
pause
通过上面的两个程序,我整合了一下,打算合成一个程序,应该就和我需要的程序差不
多了,说干就干,下面看看我的程序:

@echo off
setlocal enabledelayedexpansion
echo.
set /p dirPath=please input folder path:
echo %dirPath%
echo.


from 水木社区 电脑技术区十大热门话题 http://ift.tt/2trQv3c
via IFTTT

评论

此博客中的热门博文

丰田将在 2019 东京车展上展出一台超迷你的都市型电动车

[数字家庭] [原创]北京联通IPTV的完美方案

英特尔将推出更多支持 e-SIM 的 modem