批處理統(tǒng)計(jì)文件夾內(nèi)的所有文件的數(shù)量和總大小的bat
我最近電腦不知道為什么磁盤空間會(huì)慢慢的變小,而且過(guò)一段時(shí)間之后,又會(huì)有兩三GB的空間被釋放出來(lái),使用我想監(jiān)控下,看看是那個(gè)文件夾下產(chǎn)生的文件來(lái)占用我的存儲(chǔ)空間,我想按層監(jiān)視,最終找出原因。
從網(wǎng)上找個(gè)命令行顯示指定文件夾目錄的大小的批處理程序,但是發(fā)現(xiàn)并不太盡人意,總感覺(jué)不是很適合我的使用;
第一個(gè)程序,可以顯示某個(gè)文件夾下的文件大小,但是我想按層顯示,卻不能滿足我的要求,程序如下:
@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 個(gè)文件') 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 該文件夾內(nèi)容小于1G
pause>nul
第二個(gè)程序的,可以顯示當(dāng)前文件夾下的層級(jí)目錄,但沒(méi)有循環(huán)每一次下文件夾的大小,程序如下:
@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!個(gè)!z!M]
))>統(tǒng)計(jì)結(jié)果.txt
pause
通過(guò)上面的兩個(gè)程序,我整合了一下,打算合成一個(gè)程序,應(yīng)該就和我需要的程序差不多了,說(shuō)干就干,下面看看我的程序:
@echo off
setlocal enabledelayedexpansion
echo.
set /p dirPath=please input folder path:
echo %dirPath%
echo.
for /d %%a in (%dirPath%\*) do (
set/a zz=0
for /f "tokens=3 delims= " %%t in ('dir /s /a /-c "%%a" ^|findstr 個(gè)文件') do (
set zz=%%t
)
set d=bit
if !zz! GEQ 1024 set /a "z1=!zz!>>10"&set d=KB
if !z1! GEQ 1024 set /a "z2=!z1!>>10"&set d=KB
if !z2! GEQ 1024 set /a "z3=!z2!>>10"&set d=KB
echo 文件夾:%%a ,大小是:!z3!GB = !z2!MB = !z1!!d!
)
for /f "tokens=1-4 delims= " %%i in ('dir /a /-c %dirPath% ^|findstr 個(gè)文件') do (
set/a ss=%%k
set/a ss>>=10,d=bit
if !ss! GEQ 1024 set /a "s1=!ss!>>10"&set d=KB
if !s1! GEQ 1024 set /a "s2=!s1!>>10"&set d=KB
if !s2! GEQ 1024 set /a "s3=!s2!>>10"&set d=KB
echo 在"%dirPath%"根目錄下有 %%i %%j ,總共大小為:!s3!GB = !s2!MB = !s1!!d!
)
pause
代碼四:實(shí)現(xiàn)執(zhí)行后統(tǒng)計(jì)文件夾內(nèi)包含所有文件及所有子文件夾下的文件,以及子文件夾下的子文件夾下的文件,以及子文件夾下的子文件夾下的子文件夾下的文件
@echo off
setlocal enabledelayedexpansion
(for /f “delims=” %%i in ('dir /s/b/l/ad') do (
cd "%%~fsi"
set/a a=0,n=0
for /f "delims=" %%a in ('dir /b/l/aa') do (
set/a a+=1,n+=%%~za 2>nul
)
set/a n/=1048576
echo.%%~fi : !a! : !n!MB
)) >統(tǒng)計(jì)結(jié)果.txt
pause
MB不支持小數(shù)位,文件過(guò)小會(huì)顯示為零,可以刪除
set/a n/=1048576
并刪除MB改為字節(jié)。
或者使用KB,修改為
set/a n/=1024 echo.%%~fi : !a! : !n!KB
代碼5:用純批處理在數(shù)字計(jì)算上受限制,這個(gè)問(wèn)題用批處理結(jié)合awk倒是簡(jiǎn)單:
需拖拽執(zhí)行
# & cls & (for /f "delims=" %%a in ('dir/a-d/b/s %1') do @echo %%~za) | gawk -v path=%~n1 -f %0 >con & pause & exit
{sum+=$0}
END{
printf "%s文件夾總大小為: \n%.2f byte\n%.2f MB\n%.2f GB\n",path,sum,sum/1024/1024,sum/1024/1024/1024
}
gawk 4.1.0 下載地址://www.jb51.net/softs/515570.html
程序也不多解釋,大家一看就明白,只是把別人的東西組合在一起,調(diào)用方法:
一:雙擊執(zhí)行,根據(jù)提示輸入您需要建設(shè)的文件夾路徑。
二:開(kāi)始--運(yùn)行--cmd,然后找到存放bat文件的地方,直接輸入bat文件名就可以執(zhí)行。
三:也可以直接輸出到文件,例如:C:\>f3.bat>111.txt回車之后就只能看到光標(biāo)一閃一閃的,這時(shí)你直接輸入文件夾路徑就可以了。
說(shuō)明:如果采用輸出到文件的形式,最后把代碼最后的pause行(暫停代碼)刪除,這樣當(dāng)程序執(zhí)行完后會(huì)自動(dòng)退出,不會(huì)一直停留在程序里。
以上兩個(gè)程序的出自于“批處理之家”,地址在下面方便以后追蹤以及查閱
上一篇:dos 環(huán)境變量延遲擴(kuò)展enabledelayedexpansion詳解
欄 目:DOS/BAT
下一篇:certutil - decode/encode BASE64/HEX strings.Print symbols by
本文標(biāo)題:批處理統(tǒng)計(jì)文件夾內(nèi)的所有文件的數(shù)量和總大小的bat
本文地址:http://www.jygsgssxh.com/a1/DOS_BAT/10054.html
您可能感興趣的文章
- 01-10使用批處理實(shí)現(xiàn)軟件的自動(dòng)安裝以安裝搜狗拼音為例
- 01-10通過(guò)批處理修改DNS的代碼(推薦)
- 01-10windows使用批處理發(fā)布web到tomcat并啟動(dòng)tomcat腳本分享
- 01-10再談DOS批處理下格式化日期字符串的三種方法(詳解)
- 01-10用批處理一鍵安裝兩種擴(kuò)展名的Windows系統(tǒng)補(bǔ)丁
- 01-10ip地址切換批處理腳本分享
- 01-10批處理?xiàng)钶x三角效果實(shí)現(xiàn)代碼
- 01-10將批處理文件注冊(cè)成服務(wù)在系統(tǒng)啟動(dòng)的時(shí)候自動(dòng)調(diào)用
- 01-10批處理輸出n階幻方腳本
- 01-10dos批處理文件中的變量小結(jié)


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10DOS下查看硬盤分區(qū)該使用什么命令
- 01-10使用批處理實(shí)現(xiàn)軟件的自動(dòng)安裝以安
- 01-10后臺(tái)運(yùn)行bat定時(shí)器程序示例分享
- 01-10通過(guò)批處理修改DNS的代碼(推薦)
- 01-10dota2服務(wù)器ping測(cè)試腳本分享
- 01-10再談DOS批處理下格式化日期字符串的
- 01-10windows使用批處理發(fā)布web到tomcat并啟動(dòng)
- 01-10win7怎么設(shè)定關(guān)閉顯示器時(shí)間
- 01-10屏蔽up鍵禁止游戲運(yùn)行腳本分享
- 01-10win7創(chuàng)建wifi熱點(diǎn)腳本分享
隨機(jī)閱讀
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打開(kāi)原生自帶讀寫NTFS功能(圖文
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery


