婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 批處理統計文件夾內的所有文件的數量和總大小的bat

批處理統計文件夾內的所有文件的數量和總大小的bat

熱門標簽:雷霆電銷機器人怎么樣 智能打電話機器人收費 電話機器人全國招商 呼倫貝爾外呼系統 如何申請400電話業務mm 清遠百度地圖標注店鋪位置 電話機器人產品怎么樣 玉林市機器人外呼系統哪家好 如何弄地圖標注

我最近電腦不知道為什么磁盤空間會慢慢的變小,而且過一段時間之后,又會有兩三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.
for /d %%a in (%dirPath%\*) do (
  set/a zz=0
  for /f "tokens=3 delims= " %%t in ('dir /s /a /-c "%%a" ^|findstr 個文件') 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 個文件') 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

代碼四:實現執行后統計文件夾內包含所有文件及所有子文件夾下的文件,以及子文件夾下的子文件夾下的文件,以及子文件夾下的子文件夾下的子文件夾下的文件

@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
)) >統計結果.txt
pause

MB不支持小數位,文件過小會顯示為零,可以刪除

set/a n/=1048576

并刪除MB改為字節。

或者使用KB,修改為

set/a n/=1024
echo.%%~fi : !a! : !n!KB

代碼5:用純批處理在數字計算上受限制,這個問題用批處理結合awk倒是簡單:
需拖拽執行

#  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 下載地址:https://www.jb51.net/softs/515570.html

程序也不多解釋,大家一看就明白,只是把別人的東西組合在一起,調用方法:

一:雙擊執行,根據提示輸入您需要建設的文件夾路徑。

二:開始--運行--cmd,然后找到存放bat文件的地方,直接輸入bat文件名就可以執行。

三:也可以直接輸出到文件,例如:C:\&;f3.bat>111.txt回車之后就只能看到光標一閃一閃的,這時你直接輸入文件夾路徑就可以了。

  說明:如果采用輸出到文件的形式,最后把代碼最后的pause行(暫停代碼)刪除,這樣當程序執行完后會自動退出,不會一直停留在程序里。

以上兩個程序的出自于“批處理之家”,地址在下面方便以后追蹤以及查閱

您可能感興趣的文章:
  • 批處理(bat)獲取指定目錄下的所有文件列表
  • BAT 批處理腳本教程(詳細篇腳本之家補充)
  • Windows下使用批處理文件.bat刪除舊文件
  • 利用bat批處理程序通過DOS命令行刪除所有的空文件夾的方法
  • bat命令批處理判斷32位還是64位系統的多種方法
  • bat 批處理 for 命令快速入門
  • 修改Windows Server 2008 R2 的3389遠程端口的Bat批處理代碼
  • 批處理文件bat腳本實現代碼自動提交和項目部署

標簽:江西 公主嶺 白銀 三門峽 臺州 株洲 蕪湖 樂山

巨人網絡通訊聲明:本文標題《批處理統計文件夾內的所有文件的數量和總大小的bat》,本文關鍵詞  批處理,統計,文件夾,內,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《批處理統計文件夾內的所有文件的數量和總大小的bat》相關的同類信息!
  • 本頁收集關于批處理統計文件夾內的所有文件的數量和總大小的bat的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 徐水县| 涟源市| 方山县| 无极县| 台北县| 堆龙德庆县| 衡南县| 梅河口市| 公主岭市| 宁乡县| 仪陇县| 股票| 丰顺县| 彭州市| 伊川县| 乐安县| 博爱县| 嘉义市| 兴隆县| 百色市| 洛隆县| 隆林| 理塘县| 台南县| 呼图壁县| 哈尔滨市| 泰州市| 赞皇县| 华蓥市| 闸北区| 贵定县| 来宾市| 丰台区| 云林县| 盘山县| 新郑市| 东兴市| 庆阳市| 镇康县| 曲麻莱县| 高唐县|