lote do Windows, mostra o total de bytes da pasta atual e subpastas

2

Com o arquivo em lotes do Windows XP e do Windows 7 ...

Com uma saída em lote de uma linha (1), Como mostrar o total de bytes no
pasta atual e todas as subpastas?

dir /s produz o número desejado de bytes perto da parte inferior da saída.

Como gerar essa informação? Como

1234567890 bytes

Aqui estão 6 exemplos do que está funcionando em um lote.
Temos 2 métodos mostrando 3 resultados cada:

"d:\temp2" folders (-system -hidden) = 5921  
"d:\temp2" folders (+system +hidden) = 5926  
"d:\temp2" files ................... = 42792  


"d:\temp2" folders (-system -hidden) = 5921  
"d:\temp2" folders (+system +hidden) = 5926  
"d:\temp2" files ................... = 42792  

A pergunta acima está perguntando como produzir com lote

"d:\temp2" bytes .................., = 1234567890  

Os 6 comandos do arquivo de lote de trabalho são:

Primeiros 3 são comandos de uma linha

echo One line command outputs  

1

echo echo | set /p dummyName=""d:\temp2" folders (-system -hidden) = " && (dir /s /b /ad-s-h "d:\temp2" |find /c /v "")  

2

echo echo | set /p dummyName=""d:\temp2" folders (+system +hidden) = " && (dir /s /b /ad     "d:\temp2" |find /c /v "")  

3

echo echo | set /p dummyName=""d:\temp2" files                     = " && (dir /s /b /ad-d   "d:\temp2" |find /c /v "")  

4

set count=   
for /f %%a in ('dir /s /b /ad-s-h "d:\temp2" ^|find /c /v "" ') do set count=%%a  
echo "d:\temp2" folders (-system -hidden) = %count%   

5

set count=   
for /f %%a in ('dir /s /b /ad     "d:\temp2" ^|find /c /v "" ') do set count=%%a  
echo "d:\temp2" folders (+system +hidden) = %count%   

6

set count=   
for /f %%a in ('dir /s /b /a-d    "d:\temp2" ^|find /c /v "" ') do set count=%%a  
echo "d:\temp2" files                     = %count%   

Com uma saída em lote de uma linha (1), Como mostrar o total de bytes no
pasta atual e todas as subpastas?

-

    
por Joseph 22.10.2017 / 03:07

1 resposta

0

@echo off
setlocal

set DNAME=D:\temp2

for /f "usebackq tokens=1,2,3,4" %%a in ('dir %DNAME% /s/w/-c ^| findstr "File(s)"') do set BYTES=%%c
echo %BYTES% bytes

Isso gera o número total de bytes para d:\temp2 e seus subdiretórios.

    
por 22.10.2017 / 04:09