如何使用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"