Mi programa por lotes muestra el tamaño de la carpeta deseada, pero no muestra el tamaño de la carpeta, incluidas las subcarpetas. Simplemente los omite. ¿Cómo hago para que el programa vea el tamaño total de una carpeta?

Programa aquí:

@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 

¡gracias por adelantado!

Niels

0
Niels 14 dic. 2016 a las 23:12

2 respuestas

La mejor respuesta

Simplemente no pudo agregar la opción /s al comando 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
1
aschipfl 19 dic. 2016 a las 13:22

Para ver el tamaño de las carpetas en el escritorio.

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.

Para ver el tamaño de las carpetas, la carpeta System32.

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

Ver Findstr /?

0
user6017774user6017774 14 dic. 2016 a las 20:58