如何使用dir命令显示文件夹的子目录,从最大到最小?

我尝试使用dir /O:-S命令,尽管它可以对文件进行排序,但是似乎没有对子目录进行排序。

理想情况下,该命令应该能够下几个层次。其中一些子文件夹有自己的文件夹。例如:

D:/
|-- Folder 1
    |-- Subfolder 1
    +-- Subfolder 2
        |--Another folder
+-- Folder 2

假设文件夹1(包括其子文件夹中的所有文件)的总大小为10GB,文件夹2的总大小为15GB,我将如何输出按总内容大小排序的顺序?

IE。
94932485 Folder 2
6453445  Folder 1

提前致谢!

最佳答案

这似乎对更改的要求有效:将c:\folder更改为要查询的文件夹级别。

@echo off
pushd "c:\folder"
for /f "delims=" %%a in (' dir /ad /b ') do call :size "%%~fa"
sort /r < "%temp%\dirsize.tmp"
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 dirsize=%n%
REM set dirsize=%dirsize:,=%
set dirsize=                 %dirsize%
set dirsize=%dirsize:~-18%
>>"%temp%\dirsize.tmp" echo %dirsize% "%~1"

09-16 09:50