2026-07-10 22:40:25
算法类似于对一组指定的数字从大到小进行排序.
但是写好后却受到bat的种种制约,如set的限制无法计算2^31以上的数字(2G以上),延迟环境变量造成语句混乱,for命令先天的不足....所以先用bat写好,又用autohotkey脚本重新打包了下.以备后患.
-----------
批处理脚本
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set /a Num=10
set SearchPath=%windir:~0,2%
for /l %%i in (1,1,%Num%) do (
set /a MaxSize[%%i]=0
set /a MaxFile[%%i]=NULL
)
for /f "delims=" %%j in ('dir %SearchPath% /a-d /b /s ') do (
cls&echo 当前路径:%%~pj
set /a CurrFileSize=%%~zj
set /a error=2
for /l %%k in (1,1,%Num%) do (
if !error!==2 (
If !CurrFileSize! GTR !MaxSize[%%k]! (
set LastMax=%Num%
set /a CurrMax=%Num%-1
set /a index=%Num%-%%k
for /l %%k in (1,1,!index!) do (
set /a MaxSize[!LastMax!]=MaxSize[!CurrMax!]
call set MaxFile[%%LastMax%%]=%%MaxFile[!CurrMax!]%%
set /a LastMax-=1
set /a CurrMax-=1
)
set /a MaxSize[%%k]=!CurrFileSize!
set MaxFile[%%k]=%%~j
set /a error=1
)
)
)
)
cls&for /l %%l in (1,1,%Num%) do (
echo %%l. 文件: !MaxFile[%%l]! 大小: !MaxSize[%%l]! 字节
)
echo OK&pause>Nul
--------------------------
autohotkey脚本
代码太长暂不给出了.
如果需要,保存下面图片,选择用winrar打开,就可以看到打包后的单个exe文件了,拖出来执行,执行效率相对bat快很多.

2026-07-11 21:29:05
2026-06-22 23:01:14
如果是XP的话,使用文件搜索功能,范围设置为*.*即查询所有文件,从全部硬盘开始查找,如果想快一点可以指定个大小范围(比如1G以上)。
待查询出来以后,按[大小]列排一下序就可以了。

2026-01-26 11:34:12
2026-05-27 23:14:52