2016-12-14 150 views
0

我的批处理程序确实显示了所需文件夹的大小,但未显示包括子文件夹在内的子文件夹的大小,文件夹。它只是跳过它们。如何让程序查看文件夹的总大小?批处理文件显示文件夹大小,但不显示该子文件夹中子文件夹和子文件夹的大小

计划在这里:

@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 

在此先感谢!

Niels

回答

1

您只需错过的/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 
0

查看桌面上文件夹的大小。

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 /?

相关问题