2014-01-08 70 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

相关问题