2014-01-08 103 views
0

如何在Windows通過命令提示符如何在Windows通過命令提示符

檢查文件夾大小查看文件夾的大小,例如說在C:\Windows有許多文件和文件夾。

如何獲得這些文件和文件夾

是否有類似於UNIX du -sg *任何命令的大小?

我試圖目錄,這將給該文件而不是文件夾

+0

杜-sg *或杜-SH *? –

+0

du -sg * not du -sh * –

回答

1
@ECHO OFF 
SETLOCAL 
FOR /f "tokens=1,2,3" %%a IN ('dir /s') DO (
IF "%%b"=="File(s)" SET $files=%%a&SET $bytes=%%c 
IF "%%b"=="Dir(s)" SET $dirs=%%a&SET $free=%%c 
) 
SET $ 

GOTO :EOF 

這應該設置一些感興趣的變量。

您應該能夠插入pusd/POPD支架

PUSHD someotherdirectory 
for /f .... 
... 
) 
POPD 
... 

,如果你喜歡閱讀的someotherdirectory特點。

+0

這是給出總大小和總文件夾和總文件..我需要每個父文件夾的大小。 –

+0

我的水晶球目前正在修理。也許'dir/s | findstr「\ bytes」| more'會更好嗎? – Magoo

+0

鑑於例外! '「FINDSTR」不被識別爲內部或外部的命令, 運行程序或批處理file.' –

0

的Windows文件夾的大小 - 分類和MB上市 - 從高到低

@echo off 
pushd "c:\windows" 
for /f "delims=" %%a in (' dir /ad /b ') do call :size "%%~fa" 
sort /r < "%temp%\dirsize.tmp" |more 
del "%temp%\dirsize.tmp" 
popd 
pause 
goto :eof 

:size 
for /f "tokens=3" %%b in ('dir /s "%~1" 2^>nul ^|find " File(s) "') do set "n=%%b" 
set "n=%n:,=%" 

>"%temp%\VBS.vbs" echo Set fso = CreateObject("Scripting.FileSystemObject"^) : Wscript.echo int((%n%/1024/1024)) 
for /f "delims=" %%z in ('cscript /nologo "%temp%\VBS.vbs"') do set "dirsize=%%z" 
del "%temp%\VBS.vbs" 

set dirsize=    %dirsize% 
set dirsize=%dirsize:~-15% 
>>"%temp%\dirsize.tmp" echo %dirsize% "%~1" 
+0

這是給錯誤 「查找」的沒有被識別爲一個內部或外部的命令, 運行的程序或批處理文件。 'cscript'不被識別爲內部或外部命令, 可操作的程序或批處理文件。 –

+0

您是否使用了一個名爲'PATH'的變量? – foxidrive

+0

你解決了這個問題嗎? – foxidrive

相關問題