ไฟล์แบตช์แสดงขนาดโฟลเดอร์ แต่ไม่แสดงขนาดของโฟลเดอร์ย่อยและโฟลเดอร์ย่อยจากโฟลเดอร์ย่อยนั้น

โปรแกรมแบตช์ของฉันแสดงขนาดของโฟลเดอร์ที่ต้องการ แต่ไม่แสดงขนาดของโฟลเดอร์รวมถึงโฟลเดอร์ย่อยด้วย มันก็ข้ามพวกเขาไป ฉันจะทำให้โปรแกรมเห็นขนาดรวมของโฟลเดอร์ได้อย่างไร?

โปรแกรมที่นี่:

@echo off &setlocal enabledelayedexpansion
:: folder choose
echo enter desired directory
set /p dir=
cd /d %dir%
::getting folder size
for /f "tokens=3" %%a IN ('dir /a-d /-c') DO (
   set size=!free!
   set free=%%a
   )
echo free space is %free% bytes
echo size is %size% bytes 

ขอบคุณล่วงหน้า!

นีลส์


person Niels    schedule 14.12.2016    source แหล่งที่มา


คำตอบ (2)


คุณพลาดที่จะเพิ่มตัวเลือก /s ให้กับคำสั่ง dir:

@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "FOLDER=" & set /P FOLDER=""
for /f "tokens=3" %%A in ('
    dir /S /A:-D /-C "!FOLDER!"
') do (
    set "SIZE=!FREE!"
    set "FREE=%%A"
)
echo free space is %free% bytes
echo size is %size% bytes 
endlocal
person aschipfl    schedule 19.12.2016

เพื่อดูขนาดของโฟลเดอร์บน Desktop

for /f "skip=2 tokens=3" %A in ('Reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Desktop"') do set doc=%A

for /f "usebackq tokens=2* delims= " %i IN (`dir "%doc%" /a /s ^|findstr /i /v "\/"`) DO @echo %j&echo.

หากต้องการดูขนาดของโฟลเดอร์ในโฟลเดอร์ System32

for /f "usebackq tokens=2* delims= " %i IN (`dir "%windir%\system32" /a /s ^|findstr /i /v "\/"`) DO @echo %j&echo.

ดู Findstr /?

person Community    schedule 14.12.2016